@@ -956,32 +956,38 @@ private static int copyByteBuffer(ByteBuffer src, ByteBuffer dst) {
956
956
return remaining ;
957
957
}
958
958
959
- /**
960
- * Stores the cookie headers from the response in the default {@link CookieHandler}.
961
- *
962
- * <p>This is a no-op if the {@link CookieHandler} is not set .
963
- */
964
- @ VisibleForTesting
965
- /* private */ static void storeCookiesFromHeaders (UrlResponseInfo info ) {
966
- CookieHandler cookieHandler = CookieHandler .getDefault ();
967
- if (cookieHandler != null ) {
968
- try {
969
- cookieHandler .put (new URI (info .getUrl ()), info .getHeaders ().getAsMap ());
970
- } catch (Exception e ) {
971
- Log .w (TAG , "Failed to store cookies in CookieHandler" , e );
972
- }
959
+ // Stores the cookie headers from the response in the default {@link CookieHandler}.
960
+ private static void storeCookiesFromHeaders (UrlResponseInfo info ) {
961
+ storeCookiesFromHeaders (info , CookieHandler .getDefault ());
962
+ }
963
+
964
+ // Stores the cookie headers from the response in the provided {@link CookieHandler}.
965
+ private static void storeCookiesFromHeaders (
966
+ UrlResponseInfo info , @ Nullable CookieHandler cookieHandler ) {
967
+ if (cookieHandler == null ) {
968
+ return ;
969
+ }
970
+
971
+ try {
972
+ cookieHandler .put (new URI (info .getUrl ()), info .getHeaders ().getAsMap ());
973
+ } catch (Exception e ) {
974
+ Log .w (TAG , "Failed to store cookies in CookieHandler" , e );
973
975
}
974
976
}
975
977
976
978
@ VisibleForTesting
977
979
/* private */ static String getCookieHeader (String url ) {
978
- return getCookieHeader (url , ImmutableMap .of ());
980
+ return getCookieHeader (url , ImmutableMap .of (), CookieHandler . getDefault () );
979
981
}
980
982
981
- // getCookieHeader maps Set-Cookie2 (RFC 2965) to Cookie just like CookieManager does.
982
983
@ VisibleForTesting
983
- /* private */ static String getCookieHeader (String url , Map <String , List <String >> headers ) {
984
- CookieHandler cookieHandler = CookieHandler .getDefault ();
984
+ /* private */ static String getCookieHeader (String url , @ Nullable CookieHandler cookieHandler ) {
985
+ return getCookieHeader (url , ImmutableMap .of (), cookieHandler );
986
+ }
987
+
988
+ // getCookieHeader maps Set-Cookie2 (RFC 2965) to Cookie just like CookieManager does.
989
+ private static String getCookieHeader (
990
+ String url , Map <String , List <String >> headers , @ Nullable CookieHandler cookieHandler ) {
985
991
if (cookieHandler == null ) {
986
992
return "" ;
987
993
}
@@ -1059,11 +1065,6 @@ public void close() {
1059
1065
this .isClosed = true ;
1060
1066
}
1061
1067
1062
- @ SuppressWarnings ("argument.type.incompatible" )
1063
- private void resetDefaultCookieHandler () {
1064
- CookieHandler .setDefault (null );
1065
- }
1066
-
1067
1068
@ Override
1068
1069
public synchronized void onRedirectReceived (
1069
1070
UrlRequest request , UrlResponseInfo info , String newLocationUrl ) {
@@ -1092,20 +1093,17 @@ public synchronized void onRedirectReceived(
1092
1093
resetConnectTimeout ();
1093
1094
}
1094
1095
1095
- boolean hasDefaultCookieHandler = CookieHandler .getDefault () != null ;
1096
- if (!hasDefaultCookieHandler && handleSetCookieRequests ) {
1096
+ CookieHandler cookieHandler = CookieHandler .getDefault ();
1097
+
1098
+ if (cookieHandler == null && handleSetCookieRequests ) {
1097
1099
// a temporary CookieManager is created for the duration of this request - this guarantees
1098
1100
// redirects preserve the cookies correctly.
1099
- CookieManager cm = new CookieManager ();
1100
- CookieHandler .setDefault (cm );
1101
+ cookieHandler = new CookieManager ();
1101
1102
}
1102
1103
1103
- storeCookiesFromHeaders (info );
1104
- String cookieHeaders = getCookieHeader (info .getUrl (), info .getHeaders ().getAsMap ());
1105
-
1106
- if (!hasDefaultCookieHandler && handleSetCookieRequests ) {
1107
- resetDefaultCookieHandler ();
1108
- }
1104
+ storeCookiesFromHeaders (info , cookieHandler );
1105
+ String cookieHeaders =
1106
+ getCookieHeader (info .getUrl (), info .getHeaders ().getAsMap (), cookieHandler );
1109
1107
1110
1108
boolean shouldKeepPost =
1111
1109
keepPostFor302Redirects
0 commit comments