diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java index 89b20ff8b83b..5564b5dd81d3 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java +++ b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServlet.java @@ -91,7 +91,10 @@ public void destroy() { try { + ServletContext ctx = getServletContext(); + ctx.removeAttribute(WebSocketServletFactory.class.getName()); factory.stop(); + factory = null; } catch (Exception ignore) { @@ -135,11 +138,8 @@ public void init() throws ServletException ServletContext ctx = getServletContext(); factory = WebSocketServletFactory.Loader.load(ctx, policy); - configure(factory); - factory.start(); - ctx.setAttribute(WebSocketServletFactory.class.getName(), factory); } catch (Exception x) diff --git a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java index fe103d8b87f5..a4729189decd 100644 --- a/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java +++ b/jetty-websocket/websocket-servlet/src/main/java/org/eclipse/jetty/websocket/servlet/WebSocketServletFactory.java @@ -43,6 +43,7 @@ public static WebSocketServletFactory load(ServletContext ctx, WebSocketPolicy p { try { + @SuppressWarnings("unchecked") Class wsClazz = (Class)Class.forName(DEFAULT_IMPL, true, Thread.currentThread().getContextClassLoader()); Constructor ctor = wsClazz.getDeclaredConstructor(ServletContext.class, WebSocketPolicy.class);