diff --git a/core/java/android/net/http/RequestHandle.java b/core/java/android/net/http/RequestHandle.java index 1a3a28994734e..103fd94461de4 100644 --- a/core/java/android/net/http/RequestHandle.java +++ b/core/java/android/net/http/RequestHandle.java @@ -200,7 +200,7 @@ public class RequestHandle { if (mBodyProvider != null) mBodyProvider.reset(); } catch (java.io.IOException ex) { if (HttpLog.LOGV) { - HttpLog.v("setupAuthResponse() failed to reset body provider"); + HttpLog.v("setupRedirect() failed to reset body provider"); } return false; } @@ -443,6 +443,16 @@ public class RequestHandle { * Creates and queues new request. */ private void createAndQueueNewRequest() { + // mConnection is non-null if and only if the requests are synchronous. + if (mConnection != null) { + RequestHandle newHandle = mRequestQueue.queueSynchronousRequest( + mUrl, mUri, mMethod, mHeaders, mRequest.mEventHandler, + mBodyProvider, mBodyLength); + mRequest = newHandle.mRequest; + mConnection = newHandle.mConnection; + newHandle.processRequest(); + return; + } mRequest = mRequestQueue.queueRequest( mUrl, mUri, mMethod, mHeaders, mRequest.mEventHandler, mBodyProvider, diff --git a/core/java/android/webkit/LoadListener.java b/core/java/android/webkit/LoadListener.java index 2c247577d8f69..75dc5e7ab0397 100644 --- a/core/java/android/webkit/LoadListener.java +++ b/core/java/android/webkit/LoadListener.java @@ -1599,7 +1599,7 @@ class LoadListener extends Handler implements EventHandler { // from http thread. Then it is called again from WebViewCore thread // after the load is completed. So make sure the queue is cleared but // don't set it to null. - for (int size = mMessageQueue.size(); size > 0; size--) { + while (!mMessageQueue.isEmpty()) { handleMessage(mMessageQueue.remove(0)); } }