Skip to content

Improve error handling in REST API when the Smart Connector is stopped while a Post KI is active #715

@bnouwt

Description

@bnouwt

In our HEDGE project, we notice the following exception which seems to occur when a smart connector is stopped (via REST API) while a Post KI is active. Instead of these exceptions in the log (and possibly status 500 messages back to the KB) we should look for a better way to deal with them. I see two options:

  • Either we stall the stopping until the Post KI is done (not sure if that's even possible)
  • Or we interrupt the active Post KI (which seems to occur automatically due to the java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped exception and create a nice error message to send back to the knowledge base with the appropriate message.

See part of the log below and more in the attached file.

Exceptions in log
knowledge-engine-runtime-1  | 2025-08-11 15:45:51:025 +0000 [qtp1604839423-28] INFO SmartConnectorImpl-SCU-200-B31 - Planning post for KI <https://cgi.com/hedgeiot/meter/scu200/scu200-b31/interaction/smart-meter-post-ki-b31>.
knowledge-engine-runtime-1  | 2025-08-11 15:45:51:032 +0000 [qtp1604839423-41] INFO SmartConnectorImpl-SCU-200-B31 - Planning post for KI <https://cgi.com/hedgeiot/meter/scu200/scu200-b31/interaction/smart-meter-post-ki-b31>.
knowledge-engine-runtime-1  | 2025-08-11 15:45:51:117 +0000 [qtp1604839423-42] INFO SmartConnectorLifeCycleApiServiceImpl - scDelete called: https://cgi.com/hedgeiot/meter/scu200/scu200-b31
knowledge-engine-runtime-1  | Aug 11, 2025 3:45:51 PM org.glassfish.jersey.server.ServerRuntime$Responder process
knowledge-engine-runtime-1  | WARNING: An exception mapping did not successfully produce and processed a response. Logging the exception propagated to the default exception mapper.
knowledge-engine-runtime-1  | java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.checkStopped(SmartConnectorImpl.java:473)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.planPost(SmartConnectorImpl.java:422)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.post(SmartConnectorImpl.java:382)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.RestKnowledgeBase.post(RestKnowledgeBase.java:643)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.ProactiveApiServiceImpl.scPostPost(ProactiveApiServiceImpl.java:299)
knowledge-engine-runtime-1  | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
knowledge-engine-runtime-1  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
knowledge-engine-runtime-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
knowledge-engine-runtime-1  | 
knowledge-engine-runtime-1  | Aug 11, 2025 3:45:51 PM org.glassfish.jersey.server.ServerRuntime$Responder writeResponse
knowledge-engine-runtime-1  | SEVERE: Error while closing the output stream in order to commit response.
knowledge-engine-runtime-1  | java.io.UncheckedIOException: org.eclipse.jetty.io.EofException: Closed
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.message.internal.OutboundMessageContext.close(OutboundMessageContext.java:570)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ContainerResponse.close(ContainerResponse.java:406)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:763)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:398)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponseWithDefaultExceptionMapper(ServerRuntime.java:647)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:475)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:282)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
knowledge-engine-runtime-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
knowledge-engine-runtime-1  | Caused by: org.eclipse.jetty.io.EofException: Closed
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpOutput.checkWritable(HttpOutput.java:751)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:781)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.internal.ResponseWriter$NonCloseableOutputStreamWrapper.write(ResponseWriter.java:298)
knowledge-engine-runtime-1  | 	at java.base/java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:170)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer(CommittingOutputStream.java:286)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.message.internal.CommittingOutputStream.commit(CommittingOutputStream.java:235)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.message.internal.CommittingOutputStream.close(CommittingOutputStream.java:250)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.message.internal.OutboundMessageContext.close(OutboundMessageContext.java:568)
knowledge-engine-runtime-1  | 	... 46 more
knowledge-engine-runtime-1  | 
knowledge-engine-runtime-1  | 2025-08-11 15:45:51:129 +0000 [qtp1604839423-25] WARN HttpChannel - /rest/sc/post
knowledge-engine-runtime-1  | jakarta.servlet.ServletException: java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:412)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
knowledge-engine-runtime-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
knowledge-engine-runtime-1  | Caused by: java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.checkStopped(SmartConnectorImpl.java:473)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.planPost(SmartConnectorImpl.java:422)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.post(SmartConnectorImpl.java:382)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.RestKnowledgeBase.post(RestKnowledgeBase.java:643)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.ProactiveApiServiceImpl.scPostPost(ProactiveApiServiceImpl.java:299)
knowledge-engine-runtime-1  | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
knowledge-engine-runtime-1  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
knowledge-engine-runtime-1  | 	... 31 more
knowledge-engine-runtime-1  | 2025-08-11 15:45:51:130 +0000 [qtp1604839423-25] WARN HttpChannelState - unhandled due to prior sendError
knowledge-engine-runtime-1  | jakarta.servlet.ServletException: java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:412)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:529)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.Server.handle(Server.java:563)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
knowledge-engine-runtime-1  | 	at java.base/java.lang.Thread.run(Thread.java:1583)
knowledge-engine-runtime-1  | Caused by: java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.checkStopped(SmartConnectorImpl.java:473)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.planPost(SmartConnectorImpl.java:422)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.post(SmartConnectorImpl.java:382)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.RestKnowledgeBase.post(RestKnowledgeBase.java:643)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.ProactiveApiServiceImpl.scPostPost(ProactiveApiServiceImpl.java:299)
knowledge-engine-runtime-1  | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
knowledge-engine-runtime-1  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
knowledge-engine-runtime-1  | 	... 31 more
knowledge-engine-runtime-1  | Aug 11, 2025 3:45:51 PM org.glassfish.jersey.server.ServerRuntime$Responder process
knowledge-engine-runtime-1  | WARNING: An exception mapping did not successfully produce and processed a response. Logging the exception propagated to the default exception mapper.
knowledge-engine-runtime-1  | java.lang.IllegalStateException: The SmartConnector cannot be used anymore once it is stopped
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.checkStopped(SmartConnectorImpl.java:473)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.planPost(SmartConnectorImpl.java:422)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.smartconnector.impl.SmartConnectorImpl.post(SmartConnectorImpl.java:382)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.RestKnowledgeBase.post(RestKnowledgeBase.java:643)
knowledge-engine-runtime-1  | 	at eu.knowledge.engine.rest.api.impl.ProactiveApiServiceImpl.scPostPost(ProactiveApiServiceImpl.java:299)
knowledge-engine-runtime-1  | 	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
knowledge-engine-runtime-1  | 	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
knowledge-engine-runtime-1  | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
knowledge-engine-runtime-1  | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
... see rest in the attached file ...

exception.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions