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..d78ceb740d9bd98bef35c128d5bb1b9d26a62952 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(); |
} |
} |
@@ -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 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(); |
} |