Index: components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java |
diff --git a/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java b/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java |
index 41b0fc7b967f41ba0bff8b38e01cb2e2d69946ae..df2545a26cfbf1bf763ff61cd675e4e23bc45e43 100644 |
--- a/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java |
+++ b/components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java |
@@ -73,13 +73,7 @@ public class CronetHttpURLConnection extends HttpURLConnection { |
@Override |
public void disconnect() { |
// Disconnect before connection is made should have no effect. |
- if (connected && mInputStream != null) { |
- try { |
- mInputStream.close(); |
- } catch (IOException e) { |
- e.printStackTrace(); |
- } |
- mInputStream = null; |
+ if (connected) { |
mRequest.cancel(); |
pauljensen
2015/11/18 13:15:05
This seems racy. We cancel on this thread but the
xunjieli
2015/11/18 21:14:07
This is probably unavoidable. This HttpURLConnecti
pauljensen
2015/11/19 04:51:08
Can we make disconnect() call mMessageLoop.loop()
xunjieli
2015/12/02 15:20:03
I assume you meant mMessageLoop.quit(). I don't th
pauljensen
2015/12/02 16:21:52
No, I meant loop(). We know onCanceled() or some
xunjieli
2015/12/02 23:49:27
I don't think we should call loop here. That might
pauljensen
2015/12/03 04:04:27
I really think we need to do something here. This
|
} |
} |
@@ -455,13 +449,13 @@ public class CronetHttpURLConnection extends HttpURLConnection { |
} |
mResponseInfo = info; |
mRequest.cancel(); |
- setResponseDataCompleted(); |
+ setResponseDataCompleted(null); |
} |
@Override |
public void onSucceeded(UrlRequest request, UrlResponseInfo info) { |
mResponseInfo = info; |
- setResponseDataCompleted(); |
+ setResponseDataCompleted(null); |
} |
@Override |
@@ -473,16 +467,24 @@ public class CronetHttpURLConnection extends HttpURLConnection { |
} |
mResponseInfo = info; |
mException = exception; |
- setResponseDataCompleted(); |
+ setResponseDataCompleted(mException); |
+ } |
+ |
+ @Override |
+ public void onCanceled(UrlRequest request, UrlResponseInfo info) { |
+ mResponseInfo = info; |
+ setResponseDataCompleted(new IOException("stream closed")); |
} |
/** |
* Notifies {@link #mInputStream} that transferring of response data has |
* completed. |
+ * @param exception if not {@code null}, it is the exception to report when |
+ * caller tries to read more data. |
*/ |
- private void setResponseDataCompleted() { |
+ private void setResponseDataCompleted(IOException exception) { |
if (mInputStream != null) { |
- mInputStream.setResponseDataCompleted(); |
+ mInputStream.setResponseDataCompleted(exception); |
} |
mMessageLoop.quit(); |
} |