| Index: net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java
|
| diff --git a/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java b/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java
|
| index 6121a2a0206f0aeb7ce30ad000b289a1aff362b9..dd40220a5564fc9b9cdfc654f86294b6d026b690 100644
|
| --- a/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java
|
| +++ b/net/test/android/javatests/src/org/chromium/net/test/util/TestWebServer.java
|
| @@ -612,8 +612,9 @@ public class TestWebServer {
|
| HttpParams params = new BasicHttpParams();
|
| params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_0);
|
| while (!mIsCancelled) {
|
| + Socket socket = null;
|
| try {
|
| - Socket socket = mSocket.accept();
|
| + socket = mSocket.accept();
|
| DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
|
| conn.bind(socket, params);
|
|
|
| @@ -628,8 +629,9 @@ public class TestWebServer {
|
| HttpResponse response = mServer.getResponse(request);
|
| conn.sendResponseHeader(response);
|
| conn.sendResponseEntity(response);
|
| - conn.close();
|
|
|
| + conn.close();
|
| + socket = null;
|
| } catch (IOException e) {
|
| // normal during shutdown, ignore
|
| Log.w(TAG, e);
|
| @@ -641,6 +643,18 @@ public class TestWebServer {
|
| // DefaultHttpServerConnection's close() throws an
|
| // UnsupportedOperationException.
|
| Log.w(TAG, e);
|
| + } finally {
|
| + // Since DefaultHttpServerConnection can raise an exception
|
| + // during conn.close() (in the case of SSL), we always force
|
| + // the socket to close, since it may be left open. This will
|
| + // be a no-op if the connection managed to close the socket.
|
| + if (socket != null) {
|
| + try {
|
| + socket.close();
|
| + } catch (IOException ignored) {
|
| + // safe to ignore
|
| + }
|
| + }
|
| }
|
| }
|
| try {
|
|
|