openhab-core
openhab-core copied to clipboard
Add scriptLoaded/scriptUnloaded equivalents to DSL rules
Closes #2228
Two special rule names are created scriptLoaded and scriptUnloaded. They do not require triggers and can access all global variables in the script. It feels a bit hacky to use Rule for that but I tried to extend the model with something like scriptLoaded ... end and failed miserably. The model is correctly parsed, but the script can't be executed because non of the usually available functions (e.g. logInfo) can be found. There seems to be some magic that injects these functions if the script is inside a rule ... end block, but even after two days I didn't find out where this happens.
To make the scriptUnloaded work I had to introduce a new event type REMOVING that is triggered before the old model is removed, otherwise the script part of scriptUnloaded can't be parsed any longer because it was removed. I checked all consumers of model change notifications and adjusted them where necessary.
I also cleaned up the code a little bit. The MODIFIED event is essentially the ADDED event: as a first step all rules/cached data belonging are removed, to the call to rules.get(...) always returns null (the key element was wrong, model name instead of rule pid, so even if the model would not have been removed, the result would always be null) and listeners are only notified about an added rule (as in the case of ADDED events.
Signed-off-by: Jan N. Klug [email protected]
Why did you choose a special name instead of adding a trigger for this? Something like "rules loaded" and "rules unloaded"? Or is it not easily possible to wait for multiple "rules unloaded" rules to complete before continuing?
Because that is more in line with the other scripting languages where we have methods/functions scriptLoaded/scriptUnloaded. Creating a new trigger would be inconsistent with that (and also more difficult to implement).
Is there a time when this will be merged?
Hi @J-N-K today I found just such a need for this enhancement (see below) so I would be very happy to review your PR and test it. I think it probably also needs a description to be added in the Read Me, because I could not figure out from reading your code what would be the correct syntax to implement such a rule in a DSL .rules file. => So perhaps you can give me the syntax and 1) I will test it, 2) review and eventually approve your PR, and 3) modify the Read Me and create the respective PR for it. TIA.
https://community.openhab.org/t/rule-that-runs-when-oh-is-shutting-down/138686?u=andrewfg
Just add
rule "scriptLoaded"
then
logInfo("foo", "bar")
end
and it should work.
rule "scriptLoaded"
Perfect, I will test it.
Also, (I hope this is not too big a request for you), since I have difficulties building the core in my development environment, I wonder if you could you let me have the jar containing this module? I assume as usual I can just drop it in 'addons' (or perhaps it needs to be especially loaded..)
PS I guess that strictly 'scriptUnloaded' is not quite correct, and that the correct name would be 'scriptUnload**ing**' .. but I understand the reason for not changing it, to avoid breaking other engines..
This pull request has been mentioned on openHAB Community. There might be relevant details there:
https://community.openhab.org/t/rule-that-runs-when-oh-is-shutting-down/138686/5
I don't think you can just drop a jar in the addons directory as it's a part of the core.
don't think you can just drop a jar in the addons directory as it's a part of the core.
I think it is quite possible. (I am running such a module currently). I don't completely recall, but I think it may require a karaf command to load the bundle though..
rule "scriptLoaded"
then
logInfo("foo", "bar")
end
@J-N-K I just tried to enter such a rule in my .rules file; albeit not expecting it to work without the code from your PR; but rules loader pre-parses the file and complains about a lack of a when statement..
2022-09-06 17:48:11.742 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-06 17:48:12.039 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model '24g.rules' has errors, therefore ignoring it: [949,1]: mismatched input 'then' expecting 'when'
.. and if I add an empty when it complains as follows..
2022-09-06 17:59:25.302 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-06 17:59:25.583 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model '24g.rules' has errors, therefore ignoring it: [950,1]: no viable alternative at input 'then'
EDIT: so probably a work around that would work is something like the following (it is not elegant, but would probably work)..
rule "scriptLoaded"
when
Item Dummy_Item_That_Never_Changes changed
then
logInfo("foo", "bar")
end
With the modified code the when part should not be required for the scriptLoaded rule.
You can find a .zip with all needed parts here
@J-N-K many thanks for the Jars; unfortunately got a NoSuchFieldError exception for REMOVING (crash dump below); I am not a great expert on the core but perhaps I have incompatible modules loaded somewhere ??? (my bundle:list file is also attached..)
2022-09-07 10:47:35.753 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-07 10:47:36.874 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model '24g.rules' has errors, therefore ignoring it: [949,1]: mismatched input 'then' expecting 'when'
2022-09-07 10:47:36.877 [ERROR] [.core.internal.folder.FolderObserver] - bundle org.openhab.core.model.core:3.4.0.202209061720 (310)[org.openhab.core.model.core.internal.folder.FolderObserver(381)] : The addModelParser method has thrown an exception
java.lang.NoSuchFieldError: REMOVING
at org.openhab.core.model.core.internal.ModelRepositoryImpl.removeModel(ModelRepositoryImpl.java:155) ~[?:?]
at org.openhab.core.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:108) ~[?:?]
at org.openhab.core.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:255) ~[?:?]
at org.openhab.core.model.core.internal.folder.FolderObserver.processIgnoredFiles(FolderObserver.java:157) ~[?:?]
at org.openhab.core.model.core.internal.folder.FolderObserver.addModelParser(FolderObserver.java:100) ~[?:?]
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.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:244) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:685) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:529) [bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:2083) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:2058) [bundleFile:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:443) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:333) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:301) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1200) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1121) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:928) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:864) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1152) [bundleFile:?]
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:114) [bundleFile:?]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:120) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:956) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:936) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:873) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:261) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:495) [org.eclipse.osgi-3.17.200.jar:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:915) [bundleFile:?]
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:133) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:984) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:752) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:674) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:437) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:667) [bundleFile:?]
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:305) [bundleFile:?]
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:554) [bundleFile:?]
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:70) [bundleFile:?]
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:421) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [bundleFile:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:944) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:499) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.Module.start(Module.java:486) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1783) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) [org.eclipse.osgi-3.17.200.jar:?]
2022-09-07 10:47:41.610 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
I guess the issue is the order in which bundles are resolved. I guess that uninstall for the 3.4.0.M1 bundles (use the bundle number instead of the name) and a restart should fix it.
I guess that uninstall for the 3.4.0.M1 bundles
Aha. I had only used stop instead of uninstall... I will try again..
@J-N-K with your new jars, I was able to make some progress, but unfortunately it is not yet 100% working for me..
- The .rules file loader accepts the rule syntax without a
whenpart. - On system start the
scriptLoadedrule is indeed triggered - but actually TWO times - On editing the .rules file (causing unload/reload) both
scriptUnloadedandscriptLoadedrules are triggered. - When
sudo sytemctl stop openhab.serviceis run, it looks likescriptUnloadedtries to run but it fails withIllegalStateException.
2022-09-07 17:31:54.065 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-07 17:32:22.841 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
2022-09-07 17:32:25.641 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-07 17:32:52.269 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
>>>> rules file edited
2022-09-07 17:34:23.927 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-07 17:34:35.170 [INFO ] [org.openhab.core.model.script.Rules ] - scriptUnloaded called
2022-09-07 17:34:47.657 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
>>>> system shutdown called
2022-09-07 17:37:20.327 [INFO ] [basic.internal.servlet.WebAppServlet] - Stopped Basic UI
2022-09-07 17:37:21.516 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Stopped HABPanel
2022-09-07 17:37:25.591 [WARN ] [ore.internal.scheduler.SchedulerImpl] - Scheduled job '<unknown>' failed and stopped
java.lang.IllegalStateException: Cannot resolve proxy: 24g.rules#/1
at org.eclipse.xtext.common.types.util.JavaReflectAccess.getRawType(JavaReflectAccess.java:109) ~[?:?]
at org.eclipse.xtext.common.types.util.JavaReflectAccess.getField(JavaReflectAccess.java:58) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._assignValueTo(XbaseInterpreter.java:1354) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter._assignValueTo(ScriptInterpreter.java:211) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValueTo(XbaseInterpreter.java:1327) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:1319) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:227) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:475) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:251) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:227) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:213) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:47) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:30) ~[?:?]
at com.sun.proxy.$Proxy657.apply(Unknown Source) ~[?:?]
at org.openhab.core.model.script.actions.ScriptExecution.lambda$0(ScriptExecution.java:97) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:191) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:88) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
2022-09-07 17:37:33.625 [INFO ] [org.openhab.ui.internal.UIService ] - Stopped UI
EDIT:
I guess that problem 2. above can be resolved by using something like a boolean scriptLoadedAlreadyCalled flag. And I guess that problem 4. above can be resolved by the caller holding its own local reference to the rules container, so that the Java garbage collector cannot free it, until after it has itself called the scriptUnloaded rule. Or??
EDIT 2:
PS today I saw scriptLoaded being called THREE times ;)
2022-09-08 15:16:37.750 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-08 15:17:06.735 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
2022-09-08 15:17:08.693 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-08 15:17:36.697 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
2022-09-08 15:19:19.243 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
Can you update again? I think I fixed the issues (zip above updated, too).
Hmm. The new build seems to have fixed the multiple 'scriptLoaded' issue, but NOT the 'scriptUnloaded' issue. And worse than that, it seems to have introduced the "Trigger '0' will no longer work." regression as shown in the log below..
2022-09-09 11:23:46.689 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 11:24:12.042 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Boiler_Fault' needed for rule '24g-28' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.045 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Downstairs_Master_Thermostat_Occupancy_Mode_Present' needed for rule '24g-10' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.050 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Hub_Offline_Alarm' needed for rule '24g-28' removed. Trigger '2' will no longer work.
2022-09-09 11:24:12.054 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Leaving_Home_Button_Trigger' needed for rule '24g-13' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.064 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Battery_Low_Alarm' needed for rule '24g-28' removed. Trigger '1' will no longer work.
2022-09-09 11:24:12.066 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Boiler_System_Enabled' needed for rule '24g-41' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.071 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Shades_Scene_Trigger' needed for rule '24g-3' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.085 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Water_Control_Activity' needed for rule '24g-40' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.092 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Shed_Free_Cooling_Operational' needed for rule '24g-31' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.094 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Shed_Freezer_Switch' needed for rule '24g-37' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.097 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Motion_Detector_Trigger' needed for rule '24g-17' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.099 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Shed_Cooling_Thermostat_Cooling_Output_State' needed for rule '24g-33' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.105 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Temperature_Alarm' needed for rule '24g-28' removed. Trigger '3' will no longer work.
2022-09-09 11:24:12.123 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Home_Open_Window_Detected' needed for rule '24g-28' removed. Trigger '4' will no longer work.
2022-09-09 11:24:12.125 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Shed_Temperature' needed for rule '24g-7' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.127 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'g_Shed_Temperature' needed for rule '24g-29' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.135 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Towel_Rail_Boost_Button' needed for rule '24g-14' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.139 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Shed_Freezer_Temperature' needed for rule '24g-8' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.142 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'g_Outside_Temperature' needed for rule '24g-29' removed. Trigger '1' will no longer work.
2022-09-09 11:24:12.144 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'g_Outside_Temperature' needed for rule '24g-6' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.146 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'g_Outside_Temperature' needed for rule '24g-5' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.150 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Battery_Level' needed for rule '24g-36' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.152 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Battery_Level' needed for rule '24g-18' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.154 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Towel_Rail_Boost_Activated' needed for rule '24g-16' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.158 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Tado_HVAC_Mode' needed for rule '24g-25' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.161 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Occupancy_Mode_Present' needed for rule '24g-9' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.167 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Tado_Enable' needed for rule '24g-26' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.183 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Local_Weather_Current_Icon_Id' needed for rule '24g-22' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.184 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Local_Weather_Current_Icon_Id' needed for rule '24g-32' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.187 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Velux_Scene_Trigger' needed for rule '24g-4' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.191 [WARN ] [ule.handler.GroupStateTriggerHandler] - Group 'g_Room_Air_Quality' needed for rule '24g-23' removed. Trigger '0' will no longer work.
2022-09-09 11:24:12.194 [WARN ] [dule.handler.ItemStateTriggerHandler] - Item 'Upstairs_Master_Thermostat_Occupancy_Mode_Present' needed for rule '24g-11' removed. Trigger '0' will no longer work.
2022-09-09 11:24:16.401 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
2022-09-09 11:24:19.262 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
..
2022-09-09 11:27:20.100 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Stopped HABPanel
2022-09-09 11:27:20.143 [INFO ] [basic.internal.servlet.WebAppServlet] - Stopped Basic UI
EDIT: after rebooting the system, the "Trigger '0' will no longer work." has gone away, so that was probably some kind of cache issue. However the 'scriptUnloaded' is still not called on system shutdown..
2022-09-09 11:43:01.198 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 11:43:33.369 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-09 11:43:58.596 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
...
2022-09-09 11:47:12.542 [INFO ] [basic.internal.servlet.WebAppServlet] - Stopped Basic UI
2022-09-09 11:47:13.697 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Stopped HABPanel
2022-09-09 11:47:26.633 [INFO ] [org.openhab.ui.internal.UIService ] - Stopped UI
PS also (perhaps a minor issue) the two special rules 'scriptLoaded', 'scriptUnloaded' are not displayed on the Main UI | Settings | Rules page.
PPS I also tried editing the .rules file while the system is running, and I can see that 'scriptUnloaded' is indeed triggered in that case ... however I also observed an IllegalStateException (see below) .. although it is interesting that the exception occurred about three minutes after 'scriptUnloaded' / 'scriptLoaded' were triggered, so I am not sure if that is related or not, (maybe still a Java garbage collector issue..)
2022-09-09 11:52:31.413 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 11:53:03.407 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-09 11:53:30.187 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
>>> edit the .rules file
2022-09-09 11:55:17.583 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 11:55:29.250 [INFO ] [org.openhab.core.model.script.Rules ] - scriptUnloaded called
2022-09-09 11:55:41.134 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
2022-09-09 11:58:03.323 [WARN ] [ore.internal.scheduler.SchedulerImpl] - Scheduled job '<unknown>' failed and stopped
java.lang.IllegalStateException: Cannot resolve proxy: 24g.rules#/1
at org.eclipse.xtext.common.types.util.JavaReflectAccess.getRawType(JavaReflectAccess.java:109) ~[?:?]
at org.eclipse.xtext.common.types.util.JavaReflectAccess.getField(JavaReflectAccess.java:58) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._assignValueTo(XbaseInterpreter.java:1354) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter._assignValueTo(ScriptInterpreter.java:211) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.assignValueTo(XbaseInterpreter.java:1327) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:1319) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:227) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:475) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:251) ~[?:?]
at org.openhab.core.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:227) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:213) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:47) ~[?:?]
at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:30) ~[?:?]
at com.sun.proxy.$Proxy678.apply(Unknown Source) ~[?:?]
at org.openhab.core.model.script.actions.ScriptExecution.lambda$0(ScriptExecution.java:97) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$12(SchedulerImpl.java:191) ~[?:?]
at org.openhab.core.internal.scheduler.SchedulerImpl.lambda$1(SchedulerImpl.java:88) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
scriptUnloadednot called: I'll check that.- Exception: What rules are inside that? Anything with timers? Looks a bit strange if it was related. You can send the file to me via email ([email protected]).
scriptLoaded/scriptUnloadednot in rules list: this is expected and intentional. These are script extensions, not rules, so they should not show up there.
Edit: I think I found the scriptUnloaded issue. Can you update once more and report back?
@J-N-K unfortunately on system shutdown the unloading script still does not work (but the error is different from before). PS I disabled all items that would trigger timers in the rules..
2022-09-09 16:54:30.885 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 16:55:02.669 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-09 16:55:28.781 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
>>> rule file edited
2022-09-09 17:08:57.300 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-09 17:09:08.225 [INFO ] [org.openhab.core.model.script.Rules ] - scriptUnloaded called
2022-09-09 17:09:21.207 [INFO ] [org.openhab.core.model.script.Rules ] - scriptLoaded called
>>> system shutdown
2022-09-09 17:15:04.444 [INFO ] [basic.internal.servlet.WebAppServlet] - Stopped Basic UI
2022-09-09 17:15:05.612 [INFO ] [ab.ui.habpanel.internal.HABPanelTile] - Stopped HABPanel
2022-09-09 17:15:08.364 [ERROR] [time.internal.engine.DSLScriptEngine] - Script references context '24g-scriptUnloaded', but no context provider is registered!
2022-09-09 17:15:18.489 [INFO ] [org.openhab.ui.internal.UIService ] - Stopped UI
Uh. That‘s difficult, because the ContextProvider is removed from the EngineFactory before deactivate of the RuleProvider is called. I‘ll check if it can be done.
Please try again.
@J-N-K nope, I am afraid that your latest version seems to be completely 'banjaxed'..
2022-09-10 11:57:04.965 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model '24g.rules'
2022-09-10 11:57:23.160 [ERROR] [al.provider.ScriptModuleTypeProvider] - bundle org.openhab.core.automation.module.script:3.4.0.M1 (161)[org.openhab.core.automation.module.script.internal.provider.ScriptModuleTypeProvider(110)] : The setScriptEngineFactory method has thrown an exception
java.lang.NoClassDefFoundError: org/openhab/core/model/script/runtime/DSLScriptEngine
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.defineClass(ModuleClassLoader.java:283) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:716) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:639) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:607) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:587) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:566) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:488) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168) ~[org.eclipse.osgi-3.17.200.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngineFactory.createScriptEngine(DSLScriptEngineFactory.java:61) ~[?:?]
at org.openhab.core.automation.module.script.internal.provider.ScriptModuleTypeProvider.setScriptEngineFactory(ScriptModuleTypeProvider.java:151) ~[?:?]
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.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:244) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:685) ~[bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:529) [bundleFile:?]
at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:2083) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:2058) [bundleFile:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:443) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:333) [bundleFile:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:301) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1200) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1121) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:928) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:864) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1152) [bundleFile:?]
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:114) [bundleFile:?]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:120) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:956) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:936) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:873) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:261) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:495) [org.eclipse.osgi-3.17.200.jar:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:915) [bundleFile:?]
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:133) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:984) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:752) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:674) [bundleFile:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:437) [bundleFile:?]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:667) [bundleFile:?]
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:305) [bundleFile:?]
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:554) [bundleFile:?]
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:70) [bundleFile:?]
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:421) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [bundleFile:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [bundleFile:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:944) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:229) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:138) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:130) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:217) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:499) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.Module.start(Module.java:486) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1783) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) [org.eclipse.osgi-3.17.200.jar:?]
Caused by: java.lang.ClassNotFoundException: org.openhab.core.model.script.runtime.DSLScriptEngine cannot be found by org.openhab.core.model.script.runtime_3.4.0.202209100856
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:529) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:475) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416) ~[org.eclipse.osgi-3.17.200.jar:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168) ~[org.eclipse.osgi-3.17.200.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
... 82 more
2022-09-10 11:57:36.071 [WARN ] [e.automation.internal.RuleEngineImpl] - Fail to execute action: script
java.lang.NoClassDefFoundError: org/openhab/core/model/script/runtime/DSLScriptEngine
at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngineFactory.createScriptEngine(DSLScriptEngineFactory.java:61) ~[?:?]
at org.openhab.core.automation.module.script.internal.ScriptEngineManagerImpl.createScriptEngine(ScriptEngineManagerImpl.java:142) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.createScriptEngine(AbstractScriptModuleHandler.java:92) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.getScriptEngine(AbstractScriptModuleHandler.java:88) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:55) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1181) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1030) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$6(RuleEngineImpl.java:1443) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$4(RuleEngineImpl.java:1443) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
2022-09-10 11:57:36.085 [WARN ] [e.automation.internal.RuleEngineImpl] - Fail to execute action: script
java.lang.NoClassDefFoundError: org/openhab/core/model/script/runtime/DSLScriptEngine
at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngineFactory.createScriptEngine(DSLScriptEngineFactory.java:61) ~[?:?]
at org.openhab.core.automation.module.script.internal.ScriptEngineManagerImpl.createScriptEngine(ScriptEngineManagerImpl.java:142) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.createScriptEngine(AbstractScriptModuleHandler.java:92) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.getScriptEngine(AbstractScriptModuleHandler.java:88) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:55) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1181) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1030) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$6(RuleEngineImpl.java:1443) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$4(RuleEngineImpl.java:1443) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
2022-09-10 11:57:36.092 [WARN ] [e.automation.internal.RuleEngineImpl] - Fail to execute action: script
java.lang.NoClassDefFoundError: org/openhab/core/model/script/runtime/DSLScriptEngine
at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngineFactory.createScriptEngine(DSLScriptEngineFactory.java:61) ~[?:?]
at org.openhab.core.automation.module.script.internal.ScriptEngineManagerImpl.createScriptEngine(ScriptEngineManagerImpl.java:142) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.createScriptEngine(AbstractScriptModuleHandler.java:92) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.getScriptEngine(AbstractScriptModuleHandler.java:88) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:55) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1181) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1030) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$6(RuleEngineImpl.java:1443) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$4(RuleEngineImpl.java:1443) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
2022-09-10 11:57:36.099 [WARN ] [e.automation.internal.RuleEngineImpl] - Fail to execute action: script
java.lang.NoClassDefFoundError: org/openhab/core/model/script/runtime/DSLScriptEngine
at org.openhab.core.model.script.runtime.internal.engine.DSLScriptEngineFactory.createScriptEngine(DSLScriptEngineFactory.java:61) ~[?:?]
at org.openhab.core.automation.module.script.internal.ScriptEngineManagerImpl.createScriptEngine(ScriptEngineManagerImpl.java:142) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.createScriptEngine(AbstractScriptModuleHandler.java:92) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.AbstractScriptModuleHandler.getScriptEngine(AbstractScriptModuleHandler.java:88) ~[?:?]
at org.openhab.core.automation.module.script.internal.handler.ScriptActionHandler.execute(ScriptActionHandler.java:55) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.executeActions(RuleEngineImpl.java:1181) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.runNow(RuleEngineImpl.java:1030) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$6(RuleEngineImpl.java:1443) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) ~[?:?]
at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) ~[?:?]
at org.openhab.core.automation.internal.RuleEngineImpl.lambda$4(RuleEngineImpl.java:1443) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
2022-09-10 11:57:36.106 [INFO ] [e.automation.internal.RuleEngineImpl] - Rule engine started.
2022-09-10 11:57:40.881 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 11:58:10.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 11:58:15.312 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 11:58:40.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 11:59:01.369 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-36': Fail to execute action: script
2022-09-10 11:59:10.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 11:59:15.314 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 11:59:40.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 11:59:51.004 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
2022-09-10 11:59:51.012 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-7': Fail to execute action: script
2022-09-10 11:59:59.403 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-36': Fail to execute action: script
2022-09-10 12:00:10.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:00:15.311 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:00:17.390 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-8': Fail to execute action: script
2022-09-10 12:00:30.427 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-30': Fail to execute action: script
2022-09-10 12:00:40.467 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:01:10.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:01:15.352 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:01:40.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:01:52.123 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
2022-09-10 12:01:52.124 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-5': Fail to execute action: script
2022-09-10 12:01:52.126 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-6': Fail to execute action: script
2022-09-10 12:02:10.468 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:02:15.312 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:02:40.465 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:02:52.586 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-5': Fail to execute action: script
2022-09-10 12:02:52.586 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
2022-09-10 12:02:52.586 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-6': Fail to execute action: script
2022-09-10 12:03:10.467 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:03:15.313 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:03:15.381 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-21': Fail to execute action: script
2022-09-10 12:03:40.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:04:10.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:04:15.313 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:04:40.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:04:53.043 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-5': Fail to execute action: script
2022-09-10 12:04:53.045 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
2022-09-10 12:04:53.047 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-6': Fail to execute action: script
2022-09-10 12:04:53.294 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-5': Fail to execute action: script
2022-09-10 12:04:53.295 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
2022-09-10 12:04:53.294 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-6': Fail to execute action: script
2022-09-10 12:05:10.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:05:15.311 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-2': Fail to execute action: script
2022-09-10 12:05:17.249 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-8': Fail to execute action: script
2022-09-10 12:05:40.466 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-41': Fail to execute action: script
2022-09-10 12:05:43.111 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-7': Fail to execute action: script
2022-09-10 12:05:43.113 [ERROR] [e.automation.internal.RuleEngineImpl] - Failed to execute rule '24g-29': Fail to execute action: script
@J-N-K in case it makes any difference to future tests, my system has been updated today to v3.4.0.M3
@J-N-K I guess this one is in reality not feasible? Or ??
I‘m currently busy with other issues.
This pull request has been mentioned on openHAB Community. There might be relevant details there:
https://community.openhab.org/t/openhab-4-0-milestone-discussion/145133/433