Hello,
Using embedded Jetty. jetty-home-10.0.11. I have a problem with stopping and destroying and restarting a HttpClient. When stopping an internal component MessagingGatewayFacebook embedding an HttpClient instance, it calls closeHttpClient(). When needing to start the component from a jetty servlet, it calls createHttpClient(). private HttpClient httpClient; private void createHttpClient() { try { if (httpClient == null) { SslContextFactory.Client sslContextFactory = new SslContextFactory.Client(true); ClientConnector clientConnector = new ClientConnector(); clientConnector.setSslContextFactory(sslContextFactory); httpClient = new HttpClient(new HttpClientTransportDynamic(clientConnector)); httpClient.start(); logger.debug("HttpClient " + httpClient + " started"); } httpClient.setConnectTimeout(.); httpClient.setIdleTimeout(.); } catch (Exception ex) { logger.error("HttpClient " + httpClient + " cannot be started", ex); httpClient = null; } } private void closeHttpClient() { if (httpClient != null) { try { httpClient.stop(); httpClient.destroy(); logger.debug("HttpClient " + httpClient + " stopped"); } catch (Exception ex) { logger.debug("HttpClient " + httpClient + " cannot be stopped", ex); } httpClient = null; } } closeHttpClient() sets the httpClient to null after stop+destroy on the client. createHttpClient() creates a new HttpClient. Sometimes (it is not always the case), we get this exception on httpClient.start() showing that the AbstractConnectorHttpClientTransport cannot be started since it has been destroyed ! 2022-07-28 16:19:36,530 [qtp1875108260-253] ERROR MessagingGatewayFacebook - HttpClient HttpClient@5900f7df{FAILED} cannot be started [Destroyed container cannot be restarted] java.lang.IllegalStateException: Destroyed container cannot be restarted at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:95) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:93) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:171) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:121) at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.doStart(Abstra ctConnectorHttpClientTransport.java:62) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:93) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle .java:171) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCyc le.java:121) at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:225) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.j ava:93) at com.unigone.telserver.gateway.MessagingGatewayFacebook.createHttpClient(Mess agingGatewayFacebook.java:230) at com.unigone.telserver.gateway.MessagingGatewayFacebook.start(MessagingGatewa yFacebook.java:121) at com.unigone.telserver.gateway.MessagingGateway.startGateway(MessagingGateway .java:381) at com.unigone.telserver.MainServer.startMessagingGateway(MainServer.java:1314) at com.unigone.telserver.admin.AdminServer.startGateway(AdminServer.java:4761) at com.unigone.telserver.admin.AdminServlet.handleRequest(AdminServlet.java:239 ) at com.unigone.telserver.admin.AdminServlet.doPost(AdminServlet.java:79) at javax.servlet.http.HttpServlet.service(HttpServlet.java:523) at javax.servlet.http.HttpServlet.service(HttpServlet.java:590) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java :221) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java :1571) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java :221) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java :1378) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java: 176) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java: 1544) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java: 174) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java: 1300) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129 ) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:1 22) at org.eclipse.jetty.server.Server.handle(Server.java:562) at org.eclipse.jetty.server.HttpChannel.lambda$handle$0(HttpChannel.java:505) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:762) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:497) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConne ction.java:319) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoi nt.java:53) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(Ada ptiveExecutionStrategy.java:412) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask (AdaptiveExecutionStrategy.java:381) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce( AdaptiveExecutionStrategy.java:268) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.lambda$new$ 0(AdaptiveExecutionStrategy.java:138) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(Rese rvedThreadExecutor.java:407) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java: 894) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.j ava:1038) at java.base/java.lang.Thread.run(Thread.java:834) I may do something wrong but I don't see where. Thank you to give a help. Bruno
_______________________________________________ jetty-users mailing list jetty-users@eclipse.org To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users