src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/websocket/WebSocketImpl.java
branchhttp-client-branch
changeset 56024 de352132c7e8
parent 55992 10cefe168d6d
child 56045 5c6e3b76d2ad
--- a/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/websocket/WebSocketImpl.java	Thu Jan 18 11:26:39 2018 +0000
+++ b/src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/internal/websocket/WebSocketImpl.java	Thu Jan 18 16:52:14 2018 +0000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,6 @@
 import java.nio.ByteBuffer;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionStage;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
@@ -202,13 +201,14 @@
         // a second sendClose may prematurely close the channel
         outputClosed = true;
         return transport.sendClose(statusCode, reason)
-                .whenComplete((r, error) -> {
+                .whenComplete((result, error) -> {
                     try {
                         transport.closeOutput();
                     } catch (IOException e) {
                         Log.logError(e);
                     }
-                    if (error instanceof TimeoutException) {
+                    Throwable cause = Utils.getCompletionCause(error);
+                    if (cause instanceof TimeoutException) {
                         try {
                             transport.closeInput();
                         } catch (IOException e) {