openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.59k forks source link

[pwm] Exception when updating or removing PWM rule #13119

Open CyborgAndy opened 2 years ago

CyborgAndy commented 2 years ago

This issue is related to PWM automation module

Expected Behavior

Сhanges are successfully saved and the module continues to work

Current Behavior

The "Rules" page does not load, the PWM module does not work. The only one way to fix this - is to restart OpenHAB.

image

Exception when saving changes:

18:04:03.789 [INFO ] [openhab.event.RuleUpdatedEvent      ] - Rule 'pwm-control' has been updated.
18:04:03.786 [ERROR] [ore.common.registry.AbstractRegistry] - Cannot inform the listener "org.openhab.core.automation.internal.RuleEngineImpl$2@60973a43" about the "UPDATED" event: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@6664d37f[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@13313da2[Wrapped task = org.openhab.core.automation.internal.TriggerHandlerCallbackImpl$TriggerData@d0d9d3f]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@5c21db3d[Shutting down, pool size = 1, active threads = 0, queued tasks = 0, completed tasks = 1]
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@6664d37f[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@13313da2[Wrapped task = org.openhab.core.automation.internal.TriggerHandlerCallbackImpl$TriggerData@d0d9d3f]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@5c21db3d[Shutting down, pool size = 1, active threads = 0, queued tasks = 0, completed tasks = 1]
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:340) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:562) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.submit(ScheduledThreadPoolExecutor.java:715) ~[?:?]
    at java.util.concurrent.Executors$DelegatedExecutorService.submit(Executors.java:714) ~[?:?]
    at org.openhab.core.automation.internal.TriggerHandlerCallbackImpl.triggered(TriggerHandlerCallbackImpl.java:59) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.PWMTriggerHandler.setOutput(PWMTriggerHandler.java:189) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.StateMachine.controlOutput(StateMachine.java:70) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.State.controlOutput(State.java:83) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.AlwaysOffState.<init>(AlwaysOffState.java:27) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.State.nextState(State.java:60) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.StateMachine.stop(StateMachine.java:78) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.PWMTriggerHandler.dispose(PWMTriggerHandler.java:235) ~[?:?]
    at org.openhab.core.automation.handler.BaseModuleHandlerFactory.ungetHandler(BaseModuleHandlerFactory.java:84) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.removeModuleHandlers(RuleEngineImpl.java:616) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.unregister(RuleEngineImpl.java:687) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.removeRule(RuleEngineImpl.java:756) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl$2.removed(RuleEngineImpl.java:277) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl$2.updated(RuleEngineImpl.java:282) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl$2.updated(RuleEngineImpl.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.notifyListeners(AbstractRegistry.java:387) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.notifyListenersAboutUpdatedElement(AbstractRegistry.java:408) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.notifyListenersAboutUpdatedElement(RuleRegistryImpl.java:258) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.notifyListenersAboutUpdatedElement(RuleRegistryImpl.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:314) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.updated(RuleRegistryImpl.java:440) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.updated(RuleRegistryImpl.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:66) ~[?:?]
    at org.openhab.core.common.registry.AbstractProvider.notifyListenersAboutUpdatedElement(AbstractProvider.java:91) ~[?:?]
    at org.openhab.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:118) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.update(AbstractRegistry.java:353) ~[?:?]
    at org.openhab.core.automation.rest.internal.RuleResource.update(RuleResource.java:243) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.4.5]
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.4.5]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.4.5]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.4.5]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.4.5]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.4.5]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:234) ~[bundleFile:3.4.5]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) ~[bundleFile:?]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[bundleFile:3.4.5]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:74) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:90) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [bundleFile:9.4.46.v20220331]
    at java.lang.Thread.run(Thread.java:834) [?:?]

And exception when deleting rule (or stoping OpenHAB service):

17:57:30.528 [ERROR] [ore.common.registry.AbstractRegistry] - Cannot inform the listener "org.openhab.core.automation.internal.RuleEngineImpl$2@60973a43" about the "REMOVED" event: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@6247db6c[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@205416e[Wrapped task = org.openhab.core.automation.internal.TriggerHandlerCallbackImpl$TriggerData@96576d1]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@48311c1a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@6247db6c[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@205416e[Wrapped task = org.openhab.core.automation.internal.TriggerHandlerCallbackImpl$TriggerData@96576d1]] rejected from java.util.concurrent.ScheduledThreadPoolExecutor@48311c1a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055) ~[?:?]
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:340) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.schedule(ScheduledThreadPoolExecutor.java:562) ~[?:?]
    at java.util.concurrent.ScheduledThreadPoolExecutor.submit(ScheduledThreadPoolExecutor.java:715) ~[?:?]
    at java.util.concurrent.Executors$DelegatedExecutorService.submit(Executors.java:714) ~[?:?]
    at org.openhab.core.automation.internal.TriggerHandlerCallbackImpl.triggered(TriggerHandlerCallbackImpl.java:59) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.PWMTriggerHandler.setOutput(PWMTriggerHandler.java:189) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.StateMachine.controlOutput(StateMachine.java:70) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.State.controlOutput(State.java:83) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.AlwaysOffState.<init>(AlwaysOffState.java:27) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.State.nextState(State.java:60) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.state.StateMachine.stop(StateMachine.java:78) ~[?:?]
    at org.openhab.automation.pwm.internal.handler.PWMTriggerHandler.dispose(PWMTriggerHandler.java:235) ~[?:?]
    at org.openhab.core.automation.handler.BaseModuleHandlerFactory.ungetHandler(BaseModuleHandlerFactory.java:84) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.removeModuleHandlers(RuleEngineImpl.java:616) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.unregister(RuleEngineImpl.java:687) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl.removeRule(RuleEngineImpl.java:756) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl$2.removed(RuleEngineImpl.java:277) ~[?:?]
    at org.openhab.core.automation.internal.RuleEngineImpl$2.removed(RuleEngineImpl.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.notifyListeners(AbstractRegistry.java:370) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.notifyListenersAboutRemovedElement(AbstractRegistry.java:404) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.notifyListenersAboutRemovedElement(RuleRegistryImpl.java:304) ~[?:?]
    at org.openhab.core.automation.internal.RuleRegistryImpl.notifyListenersAboutRemovedElement(RuleRegistryImpl.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.removed(AbstractRegistry.java:264) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.removed(AbstractRegistry.java:1) ~[?:?]
    at org.openhab.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:63) ~[?:?]
    at org.openhab.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:79) ~[?:?]
    at org.openhab.core.common.registry.AbstractProvider.notifyListenersAboutRemovedElement(AbstractProvider.java:87) ~[?:?]
    at org.openhab.core.common.registry.AbstractManagedProvider.remove(AbstractManagedProvider.java:97) ~[?:?]
    at org.openhab.core.common.registry.AbstractRegistry.remove(AbstractRegistry.java:359) ~[?:?]
    at org.openhab.core.automation.rest.internal.RuleResource.remove(RuleResource.java:225) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.4.5]
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.4.5]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.4.5]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.4.5]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.4.5]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.4.5]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298) ~[bundleFile:3.4.5]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doDelete(AbstractHTTPServlet.java:228) ~[bundleFile:3.4.5]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650) ~[bundleFile:?]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273) ~[bundleFile:3.4.5]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:550) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:74) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:294) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.46.v20220331]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:90) ~[bundleFile:?]
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [bundleFile:9.4.46.v20220331]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [bundleFile:9.4.46.v20220331]
    at java.lang.Thread.run(Thread.java:834) [?:?]

Possible Solution

I understand why this happens, but I can't offer a solution

Steps to Reproduce (for Bugs)

  1. Create PWM rule, configure (add Trigger and Action) and save it. Return to rules.
  2. Open created rule, change Trigger parameters (through UI or change DSL) and save it.

Your Environment

theElectroDude commented 2 years ago

This seems to occure, when you edit the rule while its running. To avoid this you must deaktivate the rule.

For future, an edit button, which deaktivate the rule for editing would be nice.

Edit: the PID-Controler is also affected.

lsiepel commented 3 months ago

Multiple changes have been merged regarding the rule engine since openHAB 3.3.0. Can you confirm this issue is no longer happening with version 4.2.0?

Sidenote: why is this related to PWM? as this seems a more generic rule engine issue.