From a703fc626b0ec8d71e9938f214660f3e30e86002 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 27 Nov 2018 14:42:30 -0600 Subject: [PATCH 01/11] Fixes #3139 - NPE in WebSocketContainerInitializer Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/embedded/WebSocketJsrServer.java | 9 ++++++++- .../deploy/WebSocketServerContainerInitializer.java | 2 +- .../jetty/websocket/jsr356/server/ConfiguratorTest.java | 9 ++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java index 916727658c0..e4a0896a446 100644 --- a/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java +++ b/examples/embedded/src/main/java/org/eclipse/jetty/embedded/WebSocketJsrServer.java @@ -23,6 +23,8 @@ import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.handler.DefaultHandler; +import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.websocket.jsr356.server.ServerContainer; import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer; @@ -49,10 +51,12 @@ public class WebSocketJsrServer { Server server = new Server(8080); + HandlerList handlers = new HandlerList(); + ServletContextHandler context = new ServletContextHandler( ServletContextHandler.SESSIONS); context.setContextPath("/"); - server.setHandler(context); + handlers.addHandler(context); // Enable javax.websocket configuration for the context ServerContainer wsContainer = WebSocketServerContainerInitializer @@ -61,6 +65,9 @@ public class WebSocketJsrServer // Add your websockets to the container wsContainer.addEndpoint(EchoJsrSocket.class); + handlers.addHandler(new DefaultHandler()); + + server.setHandler(handlers); server.start(); context.dumpStdErr(); server.join(); diff --git a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.java b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.java index 4c8a0d7b172..239963d620b 100644 --- a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.java +++ b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/deploy/WebSocketServerContainerInitializer.java @@ -143,7 +143,7 @@ public class WebSocketServerContainerInitializer implements ServletContainerInit // Build HttpClient HttpClient httpClient = (HttpClient) context.getServletContext().getAttribute(HTTPCLIENT_ATTRIBUTE); - if(httpClient == null) + if ((httpClient == null) && (context.getServer() != null)) { httpClient = (HttpClient) context.getServer().getAttribute(HTTPCLIENT_ATTRIBUTE); } diff --git a/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java b/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java index 7527453c0eb..e4b60e1f19b 100644 --- a/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java +++ b/jetty-websocket/javax-websocket-server-impl/src/test/java/org/eclipse/jetty/websocket/jsr356/server/ConfiguratorTest.java @@ -58,6 +58,8 @@ import org.eclipse.jetty.http.HttpFields; import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.server.handler.DefaultHandler; +import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -403,9 +405,11 @@ public class ConfiguratorTest connector.setPort(0); server.addConnector(connector); + HandlerList handlers = new HandlerList(); + ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); - server.setHandler(context); + handlers.addHandler(context); ServerContainer container = WebSocketServerContainerInitializer.configureContext(context); container.addEndpoint(CaptureHeadersSocket.class); @@ -423,6 +427,9 @@ public class ConfiguratorTest .build(); container.addEndpoint(overrideEndpointConfig); + handlers.addHandler(new DefaultHandler()); + + server.setHandler(handlers); server.start(); String host = connector.getHost(); if (host == null) From da3d69261cd23d2826db799ba45ce551dc73881e Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Fri, 4 Jan 2019 21:27:39 +0100 Subject: [PATCH 02/11] Fixes #3240 - ALPN support for Java 13. --- .../src/main/config/modules/alpn-impl/alpn-13.mod | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 jetty-alpn/jetty-alpn-server/src/main/config/modules/alpn-impl/alpn-13.mod diff --git a/jetty-alpn/jetty-alpn-server/src/main/config/modules/alpn-impl/alpn-13.mod b/jetty-alpn/jetty-alpn-server/src/main/config/modules/alpn-impl/alpn-13.mod new file mode 100644 index 00000000000..689601a4197 --- /dev/null +++ b/jetty-alpn/jetty-alpn-server/src/main/config/modules/alpn-impl/alpn-13.mod @@ -0,0 +1,4 @@ +DO NOT EDIT - See: https://www.eclipse.org/jetty/documentation/current/startup-modules.html + +[depend] +alpn-impl/alpn-9 From 0078d8aed6874defdc18f2dd5460a9b776ad9044 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 8 Jan 2019 15:45:54 -0600 Subject: [PATCH 03/11] Issue #3242 - Updating BrowserDebugTool to help troubleshoot issue Signed-off-by: Joakim Erdfelt --- .../server/browser/BrowserDebugTool.java | 21 +++++++++++++++---- .../server/browser/BrowserSocket.java | 6 ++++++ .../resources/browser-debug-tool/index.html | 4 ++-- .../resources/browser-debug-tool/websocket.js | 2 +- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java index f1645badb96..5dfba99464a 100644 --- a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java +++ b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserDebugTool.java @@ -18,14 +18,22 @@ package org.eclipse.jetty.websocket.server.browser; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URISyntaxException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.handler.ResourceHandler; +import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; +import org.eclipse.jetty.util.resource.PathResource; +import org.eclipse.jetty.util.resource.Resource; import org.eclipse.jetty.websocket.api.extensions.ExtensionConfig; import org.eclipse.jetty.websocket.common.extensions.FrameCaptureExtension; import org.eclipse.jetty.websocket.server.WebSocketHandler; @@ -120,8 +128,7 @@ public class BrowserDebugTool implements WebSocketCreator return connector.getLocalPort(); } - public void prepare(int port) - { + public void prepare(int port) throws IOException, URISyntaxException { server = new Server(); connector = new ServerConnector(server); connector.setPort(port); @@ -150,16 +157,22 @@ public class BrowserDebugTool implements WebSocketCreator server.setHandler(wsHandler); - String resourceBase = "src/test/resources/browser-debug-tool"; + Resource staticResourceBase = findStaticResources(); ResourceHandler rHandler = new ResourceHandler(); rHandler.setDirectoriesListed(true); - rHandler.setResourceBase(resourceBase); + rHandler.setBaseResource(staticResourceBase); wsHandler.setHandler(rHandler); LOG.info("{} setup on port {}",this.getClass().getName(),port); } + private Resource findStaticResources() throws FileNotFoundException, URISyntaxException, MalformedURLException { + Path path = MavenTestingUtils.getTestResourcePathDir("browser-debug-tool"); + LOG.info("Static Resources: {}", path); + return new PathResource(path); + } + public void start() throws Exception { server.start(); diff --git a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java index 24828ac6724..a27d566cd80 100644 --- a/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java +++ b/jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/browser/BrowserSocket.java @@ -39,6 +39,7 @@ import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect; import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError; import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage; import org.eclipse.jetty.websocket.api.annotations.WebSocket; +import org.eclipse.jetty.websocket.common.WebSocketSession; @WebSocket public class BrowserSocket @@ -226,6 +227,11 @@ public class BrowserSocket writeMessage("Server time: %s",sdf.format(now.getTime())); break; } + case "dump": + { + ((WebSocketSession)session).dumpStdErr(); + break; + } default: { writeMessage("key[%s] val[%s]",key,val); diff --git a/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html b/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html index 4ffb6e5cc63..b7b638d3ba1 100644 --- a/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html +++ b/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/index.html @@ -16,8 +16,8 @@ + - @@ -32,7 +32,7 @@ $("manythreads").onclick = function(event) {wstool.write("manythreads:20,25,60"); return false; } $("hello").onclick = function(event) {wstool.write("Hello"); return false; } $("there").onclick = function(event) {wstool.write("There"); return false; } - $("twain").onclick = function(event) {wstool.write("@twain.txt"); return false; } + $("dump").onclick = function(event) {wstool.write("dump:"); return false; } $("json").onclick = function(event) {wstool.write("[{\"channel\":\"/meta/subscribe\",\"subscription\":\"/chat/demo\",\"id\":\"2\",\"clientId\":\"81dwnxwbgs0h0bq8968b0a0gyl\",\"timestamp\":\"Thu," + " 12 Sep 2013 19:42:30 GMT\"},{\"channel\":\"/meta/subscribe\",\"subscription\":\"/members/demo\",\"id\":\"3\",\"clientId\":\"81dwnxwbgs0h0bq8968b0a0gyl\",\"timestamp\":\"Thu," + " 12 Sep 2013 19:42:30 GMT\"},{\"channel\":\"/chat/demo\",\"data\":{\"user\":\"ch\",\"membership\":\"join\",\"chat\":\"ch" diff --git a/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js b/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js index 03f2896d4cc..66a1ec0ee52 100644 --- a/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js +++ b/jetty-websocket/websocket-server/src/test/resources/browser-debug-tool/websocket.js @@ -84,8 +84,8 @@ var wstool = { $('manythreads').disabled = !enabled; $('hello').disabled = !enabled; $('there').disabled = !enabled; + $('dump').disabled = !enabled; $('json').disabled = !enabled; - $('twain').disabled = !enabled; $('send10k').disabled = !enabled; $('send100k').disabled = !enabled; $('send1000k').disabled = !enabled; From 87c82ae64459002179dd00135bb85d0059529894 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 8 Jan 2019 15:47:17 -0600 Subject: [PATCH 04/11] Issue #3242 - Allow Dumpable to control how self is represented + Do not rely on Object.toString() for representing self (aka:this) in the dump output. Using Object.toString() can result in lots of duplicated information in the dump (and super long lines) Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/util/component/Dumpable.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java index 748c678167f..37efb48a2e9 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/component/Dumpable.java @@ -70,6 +70,15 @@ public interface Dumpable return b.toString(); } + /** + * The description of this/self found in the dump. + * Allows for alternative representation of Object other then .toString() + * where the long form output of toString() is represented in a cleaner way + * within the dump infrastructure. + * + * @return the representation of self + */ + default String dumpSelf() { return toString(); } /** * Dump just an Object (but not it's contained items) to an Appendable. @@ -90,6 +99,8 @@ public interface Dumpable s = String.format("%s@%x[size=%d]",o.getClass().getComponentType(),o.hashCode(), Array.getLength(o)); else if (o instanceof Map) s = String.format("%s@%x{size=%d}",o.getClass().getName(),o.hashCode(),((Map)o).size()); + else if (o instanceof Dumpable) + s = ((Dumpable)o).dumpSelf().replace("\r\n","|").replace("\n","|"); else s = String.valueOf(o).replace("\r\n","|").replace("\n","|"); From 689fab4979c515900c2b0e2c226aa7797c8b46cb Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 8 Jan 2019 15:47:49 -0600 Subject: [PATCH 05/11] Issue #3242 - Cleaning up WebSocket dump Signed-off-by: Joakim Erdfelt --- .../websocket/common/WebSocketSession.java | 13 +++++++---- .../common/extensions/AbstractExtension.java | 23 +------------------ .../common/extensions/ExtensionStack.java | 17 +++----------- .../io/AbstractWebSocketConnection.java | 16 +++++++------ 4 files changed, 21 insertions(+), 48 deletions(-) diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java index d3e339a3950..36ffdf9f65d 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java @@ -37,6 +37,7 @@ import org.eclipse.jetty.util.Callback; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; import org.eclipse.jetty.util.component.ContainerLifeCycle; +import org.eclipse.jetty.util.component.Dumpable; import org.eclipse.jetty.util.component.DumpableCollection; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -277,11 +278,13 @@ public class WebSocketSession extends ContainerLifeCycle implements Session, Rem } @Override - public void dump(Appendable out, String indent) throws IOException - { - dumpObjects(out,indent, - DumpableCollection.from("incoming", incomingHandler), - DumpableCollection.from("outgoing", outgoingHandler)); + public String dumpSelf() { + return String.format("%s@%x[behavior=%s,batchMode=%s,idleTimeout=%,d,requestURI=%s]", + this.getClass().getSimpleName(), hashCode(), + getPolicy().getBehavior(), + getBatchMode(), + getIdleTimeout(), + getRequestURI()); } @Override diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/AbstractExtension.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/AbstractExtension.java index 013cc9aebdf..0013ceaaa40 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/AbstractExtension.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/AbstractExtension.java @@ -39,7 +39,7 @@ import org.eclipse.jetty.websocket.common.LogicalConnection; import org.eclipse.jetty.websocket.common.scopes.WebSocketContainerScope; @ManagedObject("Abstract Extension") -public abstract class AbstractExtension extends AbstractLifeCycle implements Dumpable, Extension +public abstract class AbstractExtension extends AbstractLifeCycle implements Extension { private final Logger log; private WebSocketPolicy policy; @@ -54,27 +54,6 @@ public abstract class AbstractExtension extends AbstractLifeCycle implements Dum log = Log.getLogger(this.getClass()); } - @Override - public String dump() - { - return Dumpable.dump(this); - } - - @Override - public void dump(Appendable out, String indent) throws IOException - { - // incoming - dumpWithHeading(out, indent, "incoming", this.nextIncoming); - dumpWithHeading(out, indent, "outgoing", this.nextOutgoing); - } - - protected void dumpWithHeading(Appendable out, String indent, String heading, Object bean) throws IOException - { - out.append(indent).append(" +- "); - out.append(heading).append(" : "); - out.append(bean.toString()); - } - @Deprecated public void init(WebSocketContainerScope container) { diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java index d720869555b..083db32cc6f 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java @@ -29,6 +29,7 @@ import org.eclipse.jetty.util.IteratingCallback; import org.eclipse.jetty.util.annotation.ManagedAttribute; import org.eclipse.jetty.util.annotation.ManagedObject; import org.eclipse.jetty.util.component.ContainerLifeCycle; +import org.eclipse.jetty.util.component.DumpableCollection; import org.eclipse.jetty.util.component.LifeCycle; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -108,20 +109,8 @@ public class ExtensionStack extends ContainerLifeCycle implements IncomingFrames } @Override - public void dump(Appendable out, String indent) throws IOException - { - super.dump(out,indent); - - IncomingFrames websocket = getLastIncoming(); - OutgoingFrames network = getLastOutgoing(); - - out.append(indent).append(" +- Stack").append(System.lineSeparator()); - out.append(indent).append(" +- Network : ").append(network.toString()).append(System.lineSeparator()); - for (Extension ext : extensions) - { - out.append(indent).append(" +- Extension: ").append(ext.toString()).append(System.lineSeparator()); - } - out.append(indent).append(" +- Websocket: ").append(websocket.toString()).append(System.lineSeparator()); + public String dumpSelf() { + return String.format("ExtensionStack%x [size=%d]", hashCode(), extensions.size()); } @ManagedAttribute(name = "Extension List", readonly = true) diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java index eb4efef26ab..0eff7ed1580 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java @@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicLong; import org.eclipse.jetty.io.AbstractConnection; import org.eclipse.jetty.io.ByteBufferPool; +import org.eclipse.jetty.io.ChannelEndPoint; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.util.BufferUtil; @@ -631,15 +632,16 @@ public abstract class AbstractWebSocketConnection extends AbstractConnection imp } @Override - public String dump() - { - return Dumpable.dump(this); + public String dumpSelf() { + return String.format("%s@%x", this.getClass().getSimpleName(), hashCode()); } - @Override - public void dump(Appendable out, String indent) throws IOException - { - out.append(toString()).append(System.lineSeparator()); + public void dump(Appendable out, String indent) throws IOException { + Object endpRef = toConnectionString(); + EndPoint endp = getEndPoint(); + if(endp instanceof ChannelEndPoint) + endpRef = ((ChannelEndPoint) endp).toEndPointString(); + Dumpable.dumpObjects(out, indent, this, endpRef, ioState, flusher, generator, parser); } @Override From aad5e9733638c7e83c34e62f1f2d4d1e77a17f60 Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Tue, 8 Jan 2019 15:48:22 -0600 Subject: [PATCH 06/11] Issue #3242 - Relying on EndPoint.toString() for ProxyEndPoint.toString() Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/server/ProxyConnectionFactory.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java index 5436006635f..9b3aef0d17b 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java @@ -620,6 +620,11 @@ public class ProxyConnectionFactory extends AbstractConnectionFactory return _remote; } + @Override + public String toString() { + return _endp.toString(); + } + @Override public boolean isOpen() { From ce3defa2f5cdc588b122fba18e34fede93803da7 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 10 Jan 2019 09:07:02 +1100 Subject: [PATCH 07/11] fixed debug Signed-off-by: Greg Wilkins --- .../main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java index ad44afff3e7..5322c215657 100644 --- a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java +++ b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/AbstractProxyServlet.java @@ -549,7 +549,7 @@ public abstract class AbstractProxyServlet extends HttpServlet } builder.append(System.lineSeparator()); - _log.debug("{} proxying to upstream:{}{}{}{}", + _log.debug("{} proxying to upstream:{}{}{}{}{}", getRequestId(clientRequest), System.lineSeparator(), builder, From 69dc0059d18251cacdad1b360baf6ffca3dbf5e4 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 10 Jan 2019 22:12:12 +1300 Subject: [PATCH 08/11] use jackson-databind 2.9.8 (#3252) Signed-off-by: olivier lamy --- jetty-maven-plugin/src/it/it-parent-pom/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jetty-maven-plugin/src/it/it-parent-pom/pom.xml b/jetty-maven-plugin/src/it/it-parent-pom/pom.xml index 2ad7f139b01..ebae8653539 100644 --- a/jetty-maven-plugin/src/it/it-parent-pom/pom.xml +++ b/jetty-maven-plugin/src/it/it-parent-pom/pom.xml @@ -39,7 +39,7 @@ com.fasterxml.jackson.core jackson-databind - 2.9.7 + 2.9.8 org.slf4j @@ -144,4 +144,4 @@ - \ No newline at end of file + From 478e5ac5938627bb643599640a67ddd2dc19460b Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Fri, 11 Jan 2019 10:16:46 -0600 Subject: [PATCH 09/11] Issue #3242 - Post-review cleanup of WebSocket dump Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/websocket/common/WebSocketSession.java | 2 +- .../jetty/websocket/common/extensions/ExtensionStack.java | 2 +- .../org/eclipse/jetty/websocket/common/io/FrameFlusher.java | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java index 36ffdf9f65d..928dc0664c1 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/WebSocketSession.java @@ -279,7 +279,7 @@ public class WebSocketSession extends ContainerLifeCycle implements Session, Rem @Override public String dumpSelf() { - return String.format("%s@%x[behavior=%s,batchMode=%s,idleTimeout=%,d,requestURI=%s]", + return String.format("%s@%x[behavior=%s,batchMode=%s,idleTimeout=%d,requestURI=%s]", this.getClass().getSimpleName(), hashCode(), getPolicy().getBehavior(), getBatchMode(), diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java index 083db32cc6f..324dfbd2c20 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/extensions/ExtensionStack.java @@ -110,7 +110,7 @@ public class ExtensionStack extends ContainerLifeCycle implements IncomingFrames @Override public String dumpSelf() { - return String.format("ExtensionStack%x [size=%d]", hashCode(), extensions.size()); + return String.format("%s@%x[size=%d,queueSize=%d]", getClass().getSimpleName(), hashCode(), extensions.size(), getQueueSize()); } @ManagedAttribute(name = "Extension List", readonly = true) diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/FrameFlusher.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/FrameFlusher.java index 65cbadf5cdd..8e19d3bb123 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/FrameFlusher.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/FrameFlusher.java @@ -337,9 +337,8 @@ public class FrameFlusher extends IteratingCallback ByteBuffer agg = aggregate; if (agg != null) aggSize = agg.position(); - return String.format("%s@%x[queueSize=%d,aggregateSize=%d,terminated=%s]", - getClass().getSimpleName(), - hashCode(), + return String.format("%s[queueSize=%d,aggregateSize=%d,terminated=%s]", + super.toString(), getQueueSize(), aggSize, terminated); From e9143725b0d7803ccf12eca9ea2a5ed3661b697c Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Fri, 11 Jan 2019 10:23:51 -0600 Subject: [PATCH 10/11] Issue #3242 - Post-review cleanup of ProxyEndPoint Signed-off-by: Joakim Erdfelt --- .../org/eclipse/jetty/server/ProxyConnectionFactory.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java index 9b3aef0d17b..49d1b3542b0 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ProxyConnectionFactory.java @@ -622,7 +622,12 @@ public class ProxyConnectionFactory extends AbstractConnectionFactory @Override public String toString() { - return _endp.toString(); + return String.format("%s@%x[remote=%s,local=%s,endpoint=%s]", + getClass().getSimpleName(), + hashCode(), + _remote, + _local, + _endp); } @Override From 1b7ae00be3fd7db2a5906250718c09300c06ec1b Mon Sep 17 00:00:00 2001 From: Joakim Erdfelt Date: Fri, 11 Jan 2019 11:27:10 -0600 Subject: [PATCH 11/11] Issue #3242 - Post-review cleanup of AbstractWebSocketConnection dump of EndPoint Signed-off-by: Joakim Erdfelt --- .../websocket/common/io/AbstractWebSocketConnection.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java index 0eff7ed1580..f9ff4174fa7 100644 --- a/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java +++ b/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/io/AbstractWebSocketConnection.java @@ -29,8 +29,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import org.eclipse.jetty.io.AbstractConnection; +import org.eclipse.jetty.io.AbstractEndPoint; import org.eclipse.jetty.io.ByteBufferPool; -import org.eclipse.jetty.io.ChannelEndPoint; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.util.BufferUtil; @@ -637,10 +637,10 @@ public abstract class AbstractWebSocketConnection extends AbstractConnection imp } public void dump(Appendable out, String indent) throws IOException { - Object endpRef = toConnectionString(); EndPoint endp = getEndPoint(); - if(endp instanceof ChannelEndPoint) - endpRef = ((ChannelEndPoint) endp).toEndPointString(); + Object endpRef = endp.toString(); + if(endp instanceof AbstractEndPoint) + endpRef = ((AbstractEndPoint) endp).toEndPointString(); Dumpable.dumpObjects(out, indent, this, endpRef, ioState, flusher, generator, parser); }