diff options
Diffstat (limited to 'jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java')
-rw-r--r-- | jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java index 93d6659771..1d32ed3f31 100644 --- a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java +++ b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java @@ -25,6 +25,7 @@ import java.util.List; import javax.websocket.Extension; import javax.websocket.Extension.Parameter; import javax.websocket.server.ServerEndpointConfig; +import javax.websocket.server.ServerEndpointConfig.Configurator; import org.eclipse.jetty.util.StringUtil; import org.eclipse.jetty.util.log.Log; @@ -137,7 +138,13 @@ public class JsrCreator implements WebSocketCreator try { Class<?> endpointClass = config.getEndpointClass(); - Object endpoint = config.getConfigurator().getEndpointInstance(endpointClass); + Configurator configr = config.getConfigurator(); + Object endpoint = configr.getEndpointInstance(endpointClass); + if (configr instanceof ContainerDefaultConfigurator) + { + // default impl always decorates (custom ones do not) + endpoint = containerScope.getObjectFactory().decorate(endpoint); + } PathSpec pathSpec = hsreq.getRequestPathSpec(); if (pathSpec instanceof WebSocketPathSpec) { |