diff -r fc391230cf7b -r 6218673d7fa0 src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java --- a/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java Sat Mar 03 09:57:25 2018 +0000 +++ b/src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java Sat Mar 03 20:21:35 2018 +0000 @@ -92,13 +92,18 @@ /** * Creates an HttpRequestImpl from the given request. */ - public HttpRequestImpl(HttpRequest request, ProxySelector ps, AccessControlContext acc) { + public HttpRequestImpl(HttpRequest request, ProxySelector ps) { String method = request.method(); this.method = method == null ? "GET" : method; this.userHeaders = request.headers(); if (request instanceof HttpRequestImpl) { - this.systemHeaders = ((HttpRequestImpl) request).systemHeaders; + // all cases exception WebSocket should have a new system headers this.isWebSocket = ((HttpRequestImpl) request).isWebSocket; + if (isWebSocket) { + this.systemHeaders = ((HttpRequestImpl) request).systemHeaders; + } else { + this.systemHeaders = new HttpHeadersImpl(); + } } else { this.systemHeaders = new HttpHeadersImpl(); }