Closed berndpfrommer closed 8 years ago
I think I have this Problem sometimes too, but it can not reproduce.
Did you deactivate lazy loading in Manifest.mf for testing?
Delete Bundle-ActivationPolicy: lazy
or in Eclipse: 'Acticate this plug-in when one of its classes is loaded'.
Rgds Helmut
I set back the runlevel to 4 in order to trigger the error. Then I unchecked "Activate this plug-in when one of its classes is loaded". That does indeed modify the MANIFEST.MF file, and remove the Bundle-ActivationPolicy: lazy from the file. However, it makes no difference, it still throws an identical exception.
I'm trying to reproduce the problem while running from Eclipse (vanilla configuration + Jython) but everything appears to work well. I see the output from the Jython rule in the console. I've tried both Run and Debug configurations, several times each.
@berndpfrommer , please can you tell us more about the OH environment?
It seems to be a class-loading Problem resulted by wrong loading order (Events be sent before it can be processed by OH) , but why? Is it really a timing/order or eventually another reason?
While testing a new JDBC Bundle, I started OH hundred times last(next) days, all Tests are javascript in jsr223. In this testing environment I only have jsr223 Errors, when a Item is uninitialized or undefined, similar to xtext. Now I had written a script early loading with 'StartupTrigger'.... will see.
Rgds Helmut
supplement: For using nashorn/javascript, I in principle have to start OH with java directive -Dorg.osgi.framework.bundle.parent=ext
, which is future java 8 standard class-loading setting. You should test this, too.
I running my private copy of openhab (I develop the insteonplm binding). The last time I merged in the main trunk was around September 21st:
commit 4e26448e13edd04368398b771379669554df0b75 Merge: 1633343 e2d0269 Author: Chris JacksonDate: Mon Sep 21 22:26:23 2015 +0100 Merge pull request #3192 from cdjackson/zwave-database_updates Fix whitespace error
Hardware is an intel i7, 32G memory OS is ubuntu 14.04 Java version is oracle 8:
java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
The file foo.py has this content:
class TestRule(Rule): def __init__(self): self.logger = oh.getLogger("TestRule") def getEventTrigger(self): return [ StartupTrigger(), ChangedEventTrigger("gMotionDimmers", None, None), ChangedEventTrigger("officeLight", None, None), # TimerTrigger("0/50 * * * * ?") ] def execute(self, event): self.logger.debug("event received {}", event) if (event.getTriggerType() == TriggerType.TIMER): self.logger.debug("got timer event!") elif (event.getTriggerType() == TriggerType.CHANGE): self.logger.debug("got change event!") elif (event.getTriggerType() == TriggerType.UPDATE): self.logger.debug("got update event!"); elif (event.getTriggerType() == TriggerType.STARTUP): self.logger.debug("got startup event!"); # oh.logInfo("TestRule", str(ItemRegistry.getItem("Heating_GF_Corridor"))) # action = oh.getActions() # oh.logInfo("TestRule", "available actions: " + str(action.keySet())) # ping = oh.getAction("Ping") # oh.logInfo("TestRule", "internet reachable: " + ("yes" if ping.checkVitality("google.com", 80, 100) else "no")) # def whoop(): # print "yeah" # oh.createTimer(DateTime.now().plusSeconds(10), whoop) def getRules(): return RuleSet([ TestRule() ])
but it really doesn't matter what I put in there. I took out the StartupTrigger() and everything else, the error still happens.
This is the openhab.log for a successful startup (runlevel 5 for jsr engine):
07:16:02.842 [DEBUG] [.s.internal.SchedulerActivator:36 ] - Scheduler has been started. 07:16:02.859 [INFO ] [uartz.impl.StdSchedulerFactory:1175 ] - Using default implementation for ThreadExecutor 07:16:02.867 [INFO ] [rtz.core.SchedulerSignalerImpl:61 ] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 07:16:02.867 [INFO ] [rg.quartz.core.QuartzScheduler:243 ] - Quartz Scheduler v.2.1.7 created. 07:16:02.867 [INFO ] [org.quartz.simpl.RAMJobStore :154 ] - RAMJobStore initialized. 07:16:02.868 [INFO ] [rg.quartz.core.QuartzScheduler:268 ] - Scheduler meta-data: Quartz Scheduler (v2.1.7) 'openHAB-job-scheduler' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 2 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. 07:16:02.868 [INFO ] [uartz.impl.StdSchedulerFactory:1324 ] - Quartz scheduler 'openHAB-job-scheduler' initialized from specified file: './etc/quartz.properties' 07:16:02.868 [INFO ] [uartz.impl.StdSchedulerFactory:1328 ] - Quartz scheduler version: 2.1.7 07:16:02.868 [INFO ] [rg.quartz.core.QuartzScheduler:534 ] - Scheduler openHAB-job-scheduler_$_NON_CLUSTERED started. 07:16:02.870 [DEBUG] [o.config.core.ConfigDispatcher:146 ] - Processing openHAB default configuration file '/home/pfrommer/workspace/openhab/distribution/openhabhome/configurations/openhab_default.cfg'. 07:16:02.957 [DEBUG] [o.config.core.ConfigDispatcher:168 ] - Processing openHAB main configuration file '/home/pfrommer/workspace/openhab/distribution/openhabhome/configurations/openhab.cfg'. 07:16:03.028 [DEBUG] [.o.core.internal.CoreActivator:93 ] - UUID file already exists at '/home/pfrommer/workspace/openhab/distribution/openhabhome/webapps/static/uuid' with content '9b153502-2298-4d28-af87-d858b3262076' 07:16:03.030 [DEBUG] [.o.core.internal.CoreActivator:115 ] - Created file '/home/pfrommer/workspace/openhab/distribution/openhabhome/webapps/static/version' with content '1.8.0' 07:16:03.030 [INFO ] [.o.core.internal.CoreActivator:61 ] - openHAB runtime has been started (v1.8.0). 07:16:03.380 [DEBUG] [.i.internal.ItemModelActivator:24 ] - Registered 'item' configuration parser 07:16:03.385 [INFO ] [.service.AbstractActiveService:169 ] - InsteonPLM has been started 07:16:03.412 [DEBUG] [a.internal.AutoUpdateActivator:31 ] - AutoUpdate binding has been started. 07:16:03.522 [DEBUG] [o.o.c.i.items.ItemRegistryImpl:137 ] - Item provider 'GenericItemProvider' has been added. 07:16:03.637 [DEBUG] [.p.i.PersistenceModelActivator:23 ] - Registered 'persistence' configuration parser 07:16:03.667 [DEBUG] [.c.t.i.TransformationActivator:38 ] - Transformation Service has been started. 07:16:03.721 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'insteonplm.items' 07:16:03.726 [DEBUG] [m.internal.MultimediaActivator:34 ] - Multimedia I/O bundle has been started. 07:16:03.756 [DEBUG] [io.rest.internal.RESTActivator:33 ] - REST API has been started. 07:16:03.765 [DEBUG] [.s.i.DiscoveryServiceActivator:27 ] - Discovery service has been started. 07:16:03.772 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl:93 ] - mDNS service has been started 07:16:03.784 [DEBUG] [i.internal.GenericItemProvider:154 ] - Processing binding configs for items from model 'insteonplm.items' 07:16:03.832 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'insteonplm.items' 07:16:03.835 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'groups.items' 07:16:03.853 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl:53 ] - Service Discovery initialization completed. 07:16:03.859 [DEBUG] [i.internal.GenericItemProvider:154 ] - Processing binding configs for items from model 'groups.items' 07:16:03.913 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'insteonplm.items' 07:16:03.915 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'groups.items' 07:16:04.293 [DEBUG] [.r.internal.RuleModelActivator:42 ] - Registered 'rules' configuration parser 07:16:04.303 [DEBUG] [m.r.internal.engine.RuleEngine:77 ] - Started rule engine 07:16:04.310 [DEBUG] [.rrd4j.internal.RRD4jActivator:31 ] - RRD4j persistence bundle has been started. 07:16:04.324 [WARN ] [.p.rrd4j.internal.RRD4jService:389 ] - Unknown property name : org.openhab.persistence.rrd4j 07:16:04.325 [DEBUG] [.p.rrd4j.internal.RRD4jService:358 ] - config 'objectClass' should have the format 'name.configkey' 07:16:04.325 [INFO ] [.p.rrd4j.internal.RRD4jService:401 ] - Removing invalid defintion component = null heartbeat = 0 min/max = 0.0/0.0 step = 0 0 archives(s) = [] 0 items(s) = [] 07:16:04.325 [DEBUG] [.p.rrd4j.internal.RRD4jService:399 ] - Created default_other = GAUGE heartbeat = 3600 min/max = NaN/NaN step = 1 6 archives(s) = [ MAX xff = 0.999 steps = 1 rows = 3600 MAX xff = 0.999 steps = 10 rows = 1440 MAX xff = 0.999 steps = 60 rows = 1440 MAX xff = 0.999 steps = 900 rows = 2880 MAX xff = 0.999 steps = 21600 rows = 1460 MAX xff = 0.999 steps = 86400 rows = 3650] 0 items(s) = [] 07:16:04.325 [DEBUG] [.p.rrd4j.internal.RRD4jService:399 ] - Created default_numeric = GAUGE heartbeat = 60 min/max = NaN/NaN step = 60 6 archives(s) = [ AVERAGE xff = 0.5 steps = 1 rows = 480 AVERAGE xff = 0.5 steps = 4 rows = 360 AVERAGE xff = 0.5 steps = 14 rows = 644 AVERAGE xff = 0.5 steps = 60 rows = 720 AVERAGE xff = 0.5 steps = 720 rows = 730 AVERAGE xff = 0.5 steps = 10080 rows = 520] 0 items(s) = [] 07:16:04.326 [DEBUG] [.p.internal.PersistenceManager:146 ] - Initializing rrd4j persistence service. 07:16:04.327 [DEBUG] [c.internal.ModelRepositoryImpl:64 ] - Configuration model 'rrd4j.persist' can not be found 07:16:04.490 [DEBUG] [.o.m.s.i.SitemapModelActivator:23 ] - Registered 'sitemap' configuration parser 07:16:04.554 [INFO ] [org.atmosphere.util.IOUtils :370 ] - META-INF/services/org.atmosphere.cpr.AtmosphereFramework not found in class loader 07:16:04.566 [INFO ] [sphere.cpr.AtmosphereFramework:2601 ] - Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation 07:16:04.567 [INFO ] [cpr.DefaultAnnotationProcessor:138 ] - AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used 07:16:04.573 [WARN ] [cpr.DefaultAnnotationProcessor:178 ] - Unable to detect annotations. Application may fail to deploy. 07:16:04.584 [INFO ] [sphere.cpr.AtmosphereFramework:1891 ] - Auto detecting atmosphere handlers /WEB-INF/classes/ 07:16:04.592 [INFO ] [sphere.cpr.AtmosphereFramework:639 ] - Installed AtmosphereHandler org.atmosphere.handler.ReflectorServletProcessor mapped to context-path /* and Broadcaster Class org.atmosphere.jersey.JerseyBroadcaster 07:16:04.593 [INFO ] [sphere.cpr.AtmosphereFramework:1945 ] - Auto detecting WebSocketHandler in /WEB-INF/classes/ 07:16:04.593 [INFO ] [sphere.cpr.AtmosphereFramework:1602 ] - Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol 07:16:04.605 [INFO ] [.a.h.ReflectorServletProcessor:103 ] - Installing Servlet com.sun.jersey.spi.container.servlet.ServletContainer 07:16:04.649 [INFO ] [c.s.j.s.i.a.WebApplicationImpl:815 ] - Initiating Jersey application, version 'Jersey: 1.18.1 02/19/2014 03:28 AM' 07:16:04.652 [INFO ] [c.s.j.s.i.a.WebApplicationImpl:826 ] - Adding the following classes declared in META-INF/services/jersey-server-components to the resource configuration: class org.atmosphere.jersey.AtmosphereResourceConfigurator class org.atmosphere.jersey.AtmosphereResourceConfigurator 07:16:04.686 [INFO ] [j.s.i.a.DeferredResourceConfig:101 ] - Instantiated the Application class org.openhab.io.rest.RESTApplication 07:16:04.912 [INFO ] [sphere.cpr.AtmosphereFramework:2435 ] - AtmosphereInterceptor CORS Interceptor Support will always be executed first 07:16:04.913 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT 07:16:04.913 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT 07:16:04.913 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT 07:16:04.913 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT 07:16:04.914 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT 07:16:04.914 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT 07:16:04.914 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT 07:16:04.916 [INFO ] [sphere.cpr.AtmosphereFramework:935 ] - Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper 07:16:04.917 [WARN ] [sphere.cpr.AtmosphereFramework:941 ] - No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the org.atmosphere.cache.UUIDBroadcasterCache 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:949 ] - Default Broadcaster Class: org.atmosphere.jersey.JerseyBroadcaster 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:950 ] - Broadcaster Polling Wait Time 100 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:951 ] - Shared ExecutorService supported: true 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:958 ] - Messaging Thread Pool Size: 10 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:968 ] - Async I/O Thread Pool Size: 10 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:979 ] - Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:980 ] - Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:990 ] - Invoke AtmosphereInterceptor on WebSocket message true 07:16:04.917 [INFO ] [sphere.cpr.AtmosphereFramework:991 ] - HttpSession supported: false 07:16:04.918 [INFO ] [sphere.cpr.AtmosphereFramework:993 ] - Atmosphere is using DefaultAtmosphereObjectFactory for dependency injection and object creation 07:16:04.918 [INFO ] [sphere.cpr.AtmosphereFramework:994 ] - Atmosphere is using async support: org.atmosphere.container.JettyAsyncSupportWithWebSocket running under container: jetty/8.1.3.v20120522 with WebSocket enabled. 07:16:04.919 [INFO ] [sphere.cpr.AtmosphereFramework:996 ] - Atmosphere Framework 2.2.5 started. 07:16:04.919 [INFO ] [sphere.cpr.AtmosphereFramework:998 ] - For Atmosphere Framework Commercial Support, visit http://www.async-io.org/ or send an email to support@async-io.org 07:16:04.919 [INFO ] [penhab.io.rest.RESTApplication:144 ] - Started REST API at /rest 07:16:04.920 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66 ] - Registering new service _openhab-server._tcp.local. at port 8080 07:16:04.996 [INFO ] [sphere.cpr.AtmosphereFramework:1053 ] - Latest version of Atmosphere's JavaScript Client 2.2.12 07:16:04.996 [INFO ] [sphere.cpr.AtmosphereFramework:1060 ] - Atmosphere Framework Updates: Minor Update available (bugs fixes): 2.2.8 07:16:11.476 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66 ] - Registering new service _openhab-server-ssl._tcp.local. at port 8443 07:16:13.982 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'nolen.sitemap' 07:16:14.176 [DEBUG] [p.r.i.charts.RRD4jChartServlet:118 ] - Starting up rrd chart servlet at /rrdchart.png 07:16:14.226 [INFO ] [.o.u.w.i.servlet.WebAppServlet:79 ] - Started Classic UI at /openhab.app 07:16:14.254 [DEBUG] [j.internal.Jsr223CoreActivator:33 ] - Registered 'jsr223' scripting-engine 07:16:14.262 [DEBUG] [j.internal.engine.Jsr223Engine:96 ] - itemRegistry set 07:16:14.263 [DEBUG] [j.internal.engine.Jsr223Engine:68 ] - activate() 07:16:14.267 [INFO ] [o.o.c.j.i.e.s.ScriptManager :58 ] - Available engines: 07:16:14.271 [INFO ] [o.o.c.j.i.e.s.ScriptManager :60 ] - Oracle Nashorn 07:16:14.271 [INFO ] [o.o.c.j.i.e.s.ScriptManager :60 ] - jython 07:16:14.273 [INFO ] [o.c.j.i.e.scriptmanager.Script:81 ] - Loading Script foo.py~ 07:16:14.274 [WARN ] [o.o.c.j.i.e.s.ScriptManager :92 ] - No Engine found for File: foo.py~ 07:16:14.274 [INFO ] [o.c.j.i.e.scriptmanager.Script:81 ] - Loading Script foo.py 07:16:15.121 [INFO ] [o.c.j.i.e.scriptmanager.Script:86 ] - EngineName: jython 07:16:15.300 [INFO ] [o.o.c.j.i.e.s.ScriptManager :95 ] - Engine found for File: foo.py 07:16:15.303 [DEBUG] [j.internal.engine.Jsr223Engine:78 ] - Started Jsr232 engine 07:16:15.335 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - event received Event [triggerType=STARTUP, item=null, oldState=null, newState=null, command=null] 07:16:15.336 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - got startup event!
This is how an unsuccessful start looks like. Note that the engine works either way, i.e. the script runs, but none of the items is present.
07:06:10.158 [DEBUG] [.s.internal.SchedulerActivator:36 ] - Scheduler has been started. 07:06:10.173 [INFO ] [uartz.impl.StdSchedulerFactory:1175 ] - Using default implementation for ThreadExecutor 07:06:10.181 [INFO ] [rtz.core.SchedulerSignalerImpl:61 ] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl 07:06:10.182 [INFO ] [rg.quartz.core.QuartzScheduler:243 ] - Quartz Scheduler v.2.1.7 created. 07:06:10.182 [INFO ] [org.quartz.simpl.RAMJobStore :154 ] - RAMJobStore initialized. 07:06:10.183 [INFO ] [rg.quartz.core.QuartzScheduler:268 ] - Scheduler meta-data: Quartz Scheduler (v2.1.7) 'openHAB-job-scheduler' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 2 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. 07:06:10.183 [INFO ] [uartz.impl.StdSchedulerFactory:1324 ] - Quartz scheduler 'openHAB-job-scheduler' initialized from specified file: './etc/quartz.properties' 07:06:10.183 [INFO ] [uartz.impl.StdSchedulerFactory:1328 ] - Quartz scheduler version: 2.1.7 07:06:10.183 [INFO ] [rg.quartz.core.QuartzScheduler:534 ] - Scheduler openHAB-job-scheduler_$_NON_CLUSTERED started. 07:06:10.184 [DEBUG] [o.config.core.ConfigDispatcher:146 ] - Processing openHAB default configuration file '/home/pfrommer/workspace/openhab/distribution/openhabhome/configurations/openhab_default.cfg'. 07:06:12.847 [DEBUG] [o.config.core.ConfigDispatcher:168 ] - Processing openHAB main configuration file '/home/pfrommer/workspace/openhab/distribution/openhabhome/configurations/openhab.cfg'. 07:06:14.878 [DEBUG] [.o.core.internal.CoreActivator:93 ] - UUID file already exists at '/home/pfrommer/workspace/openhab/distribution/openhabhome/webapps/static/uuid' with content '9b153502-2298-4d28-af87-d858b3262076' 07:06:14.917 [DEBUG] [.o.core.internal.CoreActivator:115 ] - Created file '/home/pfrommer/workspace/openhab/distribution/openhabhome/webapps/static/version' with content '1.8.0' 07:06:14.917 [INFO ] [.o.core.internal.CoreActivator:61 ] - openHAB runtime has been started (v1.8.0). 07:06:15.289 [DEBUG] [.i.internal.ItemModelActivator:24 ] - Registered 'item' configuration parser 07:06:15.295 [INFO ] [.service.AbstractActiveService:169 ] - InsteonPLM has been started 07:06:15.515 [DEBUG] [a.internal.AutoUpdateActivator:31 ] - AutoUpdate binding has been started. 07:06:15.529 [DEBUG] [j.internal.Jsr223CoreActivator:33 ] - Registered 'jsr223' scripting-engine 07:06:15.540 [DEBUG] [j.internal.engine.Jsr223Engine:96 ] - itemRegistry set 07:06:15.540 [DEBUG] [j.internal.engine.Jsr223Engine:68 ] - activate() 07:06:15.547 [INFO ] [o.o.c.j.i.e.s.ScriptManager :58 ] - Available engines: 07:06:15.552 [INFO ] [o.o.c.j.i.e.s.ScriptManager :60 ] - jython 07:06:15.552 [INFO ] [o.o.c.j.i.e.s.ScriptManager :60 ] - Oracle Nashorn 07:06:15.555 [INFO ] [o.c.j.i.e.scriptmanager.Script:81 ] - Loading Script foo.py~ 07:06:15.556 [WARN ] [o.o.c.j.i.e.s.ScriptManager :92 ] - No Engine found for File: foo.py~ 07:06:15.556 [INFO ] [o.c.j.i.e.scriptmanager.Script:81 ] - Loading Script foo.py 07:06:16.248 [INFO ] [o.c.j.i.e.scriptmanager.Script:86 ] - EngineName: jython 07:06:16.547 [DEBUG] [o.o.c.i.items.ItemRegistryImpl:137 ] - Item provider 'GenericItemProvider' has been added. 07:06:17.314 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'insteonplm.items' 07:06:17.410 [DEBUG] [i.internal.GenericItemProvider:154 ] - Processing binding configs for items from model 'insteonplm.items' 07:06:17.410 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatCoolPoint' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHeatPoint' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatSystemMode' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatFanMode' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatIsHeating' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatIsCooling' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatTempFahren' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatTempCelsius' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidity' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatACDelay' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatBacklight' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatStage1' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidityHigh' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidityLow' of type 'Number' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'broadcastOnOff' of type 'Switch' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'officeLight' of type 'Switch' 07:06:17.411 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomEastDimmerFastOnOff' of type 'Switch' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomEastDimmer' of type 'Dimmer' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomWestDimmer' of type 'Dimmer' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'computerRoomLightsWestSw' of type 'Dimmer' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'computerRoomLightsEastSw' of type 'Dimmer' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'insteonplm.items' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatCoolPoint' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHeatPoint' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatSystemMode' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatFanMode' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatIsHeating' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatIsCooling' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatTempFahren' of type 'Number' 07:06:17.412 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatTempCelsius' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidity' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatACDelay' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatBacklight' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatStage1' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidityHigh' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'thermostatHumidityLow' of type 'Number' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'broadcastOnOff' of type 'Switch' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'officeLight' of type 'Switch' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomEastDimmerFastOnOff' of type 'Switch' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomEastDimmer' of type 'Dimmer' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'diningRoomWestDimmer' of type 'Dimmer' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'computerRoomLightsWestSw' of type 'Dimmer' 07:06:17.413 [DEBUG] [i.internal.GenericItemProvider:419 ] - Couldn't find ItemFactory for item 'computerRoomLightsEastSw' of type 'Dimmer' 07:06:17.419 [ERROR] [.o.m.c.i.folder.FolderObserver:105 ] - An unexpected exception has occured java.lang.NullPointerException: null at org.openhab.core.jsr223.internal.engine.Jsr223Engine.runStartupRules(Jsr223Engine.java:201) ~[na:na] at org.openhab.core.jsr223.internal.engine.Jsr223Engine.allItemsChanged(Jsr223Engine.java:116) ~[na:na] at org.openhab.core.internal.items.ItemRegistryImpl.allItemsChanged(ItemRegistryImpl.java:201) ~[na:na] at org.openhab.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:393) ~[na:na] at org.openhab.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:159) ~[na:na] at org.openhab.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:85) ~[na:na] at org.openhab.model.core.internal.folder.FolderObserver.checkFolder(FolderObserver.java:142) ~[na:na] at org.openhab.model.core.internal.folder.FolderObserver.run(FolderObserver.java:99) ~[na:na] 07:06:17.476 [INFO ] [o.o.c.j.i.e.s.ScriptManager :95 ] - Engine found for File: foo.py 07:06:17.479 [DEBUG] [j.internal.engine.Jsr223Engine:78 ] - Started Jsr232 engine 07:06:17.484 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - event received Event [triggerType=STARTUP, item=null, oldState=null, newState=null, command=null] 07:06:17.485 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - got startup event! 07:06:17.714 [DEBUG] [.p.i.PersistenceModelActivator:23 ] - Registered 'persistence' configuration parser 07:06:17.918 [DEBUG] [.c.t.i.TransformationActivator:38 ] - Transformation Service has been started. 07:06:17.973 [DEBUG] [m.internal.MultimediaActivator:34 ] - Multimedia I/O bundle has been started. 07:06:18.002 [DEBUG] [io.rest.internal.RESTActivator:33 ] - REST API has been started. 07:06:18.010 [DEBUG] [.s.i.DiscoveryServiceActivator:27 ] - Discovery service has been started. 07:06:18.019 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl:93 ] - mDNS service has been started 07:06:18.045 [INFO ] [o.o.i.s.i.DiscoveryServiceImpl:53 ] - Service Discovery initialization completed. 07:06:18.156 [DEBUG] [.r.internal.RuleModelActivator:42 ] - Registered 'rules' configuration parser 07:06:18.166 [DEBUG] [m.r.internal.engine.RuleEngine:77 ] - Started rule engine 07:06:18.172 [DEBUG] [.rrd4j.internal.RRD4jActivator:31 ] - RRD4j persistence bundle has been started. 07:06:18.187 [WARN ] [.p.rrd4j.internal.RRD4jService:389 ] - Unknown property name : org.openhab.persistence.rrd4j 07:06:18.188 [DEBUG] [.p.rrd4j.internal.RRD4jService:358 ] - config 'objectClass' should have the format 'name.configkey' 07:06:18.188 [INFO ] [.p.rrd4j.internal.RRD4jService:401 ] - Removing invalid defintion component = null heartbeat = 0 min/max = 0.0/0.0 step = 0 0 archives(s) = [] 0 items(s) = [] 07:06:18.188 [DEBUG] [.p.rrd4j.internal.RRD4jService:399 ] - Created default_other = GAUGE heartbeat = 3600 min/max = NaN/NaN step = 1 6 archives(s) = [ MAX xff = 0.999 steps = 1 rows = 3600 MAX xff = 0.999 steps = 10 rows = 1440 MAX xff = 0.999 steps = 60 rows = 1440 MAX xff = 0.999 steps = 900 rows = 2880 MAX xff = 0.999 steps = 21600 rows = 1460 MAX xff = 0.999 steps = 86400 rows = 3650] 0 items(s) = [] 07:06:18.188 [DEBUG] [.p.rrd4j.internal.RRD4jService:399 ] - Created default_numeric = GAUGE heartbeat = 60 min/max = NaN/NaN step = 60 6 archives(s) = [ AVERAGE xff = 0.5 steps = 1 rows = 480 AVERAGE xff = 0.5 steps = 4 rows = 360 AVERAGE xff = 0.5 steps = 14 rows = 644 AVERAGE xff = 0.5 steps = 60 rows = 720 AVERAGE xff = 0.5 steps = 720 rows = 730 AVERAGE xff = 0.5 steps = 10080 rows = 520] 0 items(s) = [] 07:06:18.189 [DEBUG] [.p.internal.PersistenceManager:146 ] - Initializing rrd4j persistence service. 07:06:18.190 [DEBUG] [c.internal.ModelRepositoryImpl:64 ] - Configuration model 'rrd4j.persist' can not be found 07:06:18.348 [DEBUG] [.o.m.s.i.SitemapModelActivator:23 ] - Registered 'sitemap' configuration parser 07:06:18.430 [INFO ] [org.atmosphere.util.IOUtils :370 ] - META-INF/services/org.atmosphere.cpr.AtmosphereFramework not found in class loader 07:06:18.440 [INFO ] [sphere.cpr.AtmosphereFramework:2601 ] - Atmosphere is using org.atmosphere.cpr.DefaultAnnotationProcessor for processing annotation 07:06:18.441 [INFO ] [cpr.DefaultAnnotationProcessor:138 ] - AnnotationProcessor class org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor being used 07:06:18.446 [WARN ] [cpr.DefaultAnnotationProcessor:178 ] - Unable to detect annotations. Application may fail to deploy. 07:06:18.458 [INFO ] [sphere.cpr.AtmosphereFramework:1891 ] - Auto detecting atmosphere handlers /WEB-INF/classes/ 07:06:18.466 [INFO ] [sphere.cpr.AtmosphereFramework:639 ] - Installed AtmosphereHandler org.atmosphere.handler.ReflectorServletProcessor mapped to context-path /* and Broadcaster Class org.atmosphere.jersey.JerseyBroadcaster 07:06:18.467 [INFO ] [sphere.cpr.AtmosphereFramework:1945 ] - Auto detecting WebSocketHandler in /WEB-INF/classes/ 07:06:18.467 [INFO ] [sphere.cpr.AtmosphereFramework:1602 ] - Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol 07:06:18.478 [INFO ] [.a.h.ReflectorServletProcessor:103 ] - Installing Servlet com.sun.jersey.spi.container.servlet.ServletContainer 07:06:18.520 [INFO ] [c.s.j.s.i.a.WebApplicationImpl:815 ] - Initiating Jersey application, version 'Jersey: 1.18.1 02/19/2014 03:28 AM' 07:06:18.523 [INFO ] [c.s.j.s.i.a.WebApplicationImpl:826 ] - Adding the following classes declared in META-INF/services/jersey-server-components to the resource configuration: class org.atmosphere.jersey.AtmosphereResourceConfigurator class org.atmosphere.jersey.AtmosphereResourceConfigurator 07:06:18.553 [INFO ] [j.s.i.a.DeferredResourceConfig:101 ] - Instantiated the Application class org.openhab.io.rest.RESTApplication 07:06:18.922 [INFO ] [sphere.cpr.AtmosphereFramework:2435 ] - AtmosphereInterceptor CORS Interceptor Support will always be executed first 07:06:18.922 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT 07:06:18.922 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT 07:06:18.923 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT 07:06:18.923 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT 07:06:18.923 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT 07:06:18.924 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT 07:06:18.924 [INFO ] [sphere.cpr.AtmosphereFramework:2404 ] - Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT 07:06:18.926 [INFO ] [sphere.cpr.AtmosphereFramework:935 ] - Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper 07:06:18.927 [WARN ] [sphere.cpr.AtmosphereFramework:941 ] - No BroadcasterCache configured. Broadcasted message between client reconnection will be LOST. It is recommended to configure the org.atmosphere.cache.UUIDBroadcasterCache 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:949 ] - Default Broadcaster Class: org.atmosphere.jersey.JerseyBroadcaster 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:950 ] - Broadcaster Polling Wait Time 100 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:951 ] - Shared ExecutorService supported: true 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:958 ] - Messaging Thread Pool Size: 10 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:968 ] - Async I/O Thread Pool Size: 10 07:06:18.927 [INFO ] [sphere.cpr.AtmosphereFramework:979 ] - Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:980 ] - Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:990 ] - Invoke AtmosphereInterceptor on WebSocket message true 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:991 ] - HttpSession supported: false 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:993 ] - Atmosphere is using DefaultAtmosphereObjectFactory for dependency injection and object creation 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:994 ] - Atmosphere is using async support: org.atmosphere.container.JettyAsyncSupportWithWebSocket running under container: jetty/8.1.3.v20120522 with WebSocket enabled. 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:996 ] - Atmosphere Framework 2.2.5 started. 07:06:18.928 [INFO ] [sphere.cpr.AtmosphereFramework:998 ] - For Atmosphere Framework Commercial Support, visit http://www.async-io.org/ or send an email to support@async-io.org 07:06:18.929 [INFO ] [penhab.io.rest.RESTApplication:144 ] - Started REST API at /rest 07:06:18.931 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66 ] - Registering new service _openhab-server._tcp.local. at port 8080 07:06:19.019 [INFO ] [sphere.cpr.AtmosphereFramework:1053 ] - Latest version of Atmosphere's JavaScript Client 2.2.12 07:06:19.019 [INFO ] [sphere.cpr.AtmosphereFramework:1060 ] - Atmosphere Framework Updates: Minor Update available (bugs fixes): 2.2.8 07:06:25.927 [DEBUG] [o.o.i.s.i.DiscoveryServiceImpl:66 ] - Registering new service _openhab-server-ssl._tcp.local. at port 8443 07:06:27.504 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'nolen.sitemap' 07:06:27.580 [INFO ] [c.internal.ModelRepositoryImpl:98 ] - Refreshing model 'insteonplm.items' 07:06:27.583 [DEBUG] [i.internal.GenericItemProvider:154 ] - Processing binding configs for items from model 'insteonplm.items' 07:06:27.598 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'insteonplm.items' 07:06:27.610 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - event received Event [triggerType=STARTUP, item=null, oldState=null, newState=null, command=null] 07:06:27.611 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - got startup event! 07:06:27.612 [INFO ] [c.internal.ModelRepositoryImpl:80 ] - Loading model 'groups.items' 07:06:27.623 [DEBUG] [i.internal.GenericItemProvider:154 ] - Processing binding configs for items from model 'groups.items' 07:06:27.628 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'insteonplm.items' 07:06:27.629 [DEBUG] [i.internal.GenericItemProvider:133 ] - Read items from model 'groups.items' 07:06:27.633 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - event received Event [triggerType=STARTUP, item=null, oldState=null, newState=null, command=null] 07:06:27.634 [DEBUG] [.openhab.model.jsr232.TestRule:-2 ] - got startup event!
The most obvious difference is the order in which components are registered: In the successful case:
07:16:03.380 [DEBUG] [.i.internal.ItemModelActivator:24 ] - Registered 'item' configuration parser 07:16:03.637 [DEBUG] [.p.i.PersistenceModelActivator:23 ] - Registered 'persistence' configuration parser 07:16:04.293 [DEBUG] [.r.internal.RuleModelActivator:42 ] - Registered 'rules' configuration parser 07:16:04.490 [DEBUG] [.o.m.s.i.SitemapModelActivator:23 ] - Registered 'sitemap' configuration parser 07:16:14.254 [DEBUG] [j.internal.Jsr223CoreActivator:33 ] - Registered 'jsr223' scripting-engine
vs the failure mode:
07:06:15.289 [DEBUG] [.i.internal.ItemModelActivator:24 ] - Registered 'item' configuration parser 07:06:15.529 [DEBUG] [j.internal.Jsr223CoreActivator:33 ] - Registered 'jsr223' scripting-engine 07:06:17.714 [DEBUG] [.p.i.PersistenceModelActivator:23 ] - Registered 'persistence' configuration parser 07:06:18.156 [DEBUG] [.r.internal.RuleModelActivator:42 ] - Registered 'rules' configuration parser 07:06:18.348 [DEBUG] [.o.m.s.i.SitemapModelActivator:23 ] - Registered 'sitemap' configuration parser
What ordering do you see for your runs (when you set the runlevel to default)?
HA, I had a look in my OH Eclipse Environment and in openHAB Runtime.launch jsr223 starts on start-level 5. Had a look in git History, since 4 month Merschjohann has commited jsr223 with start-level 5.
Your failure mode can not work, because jsr223 must have access to some classes of persistence Services! My Startorder with start-level 5:
14:39:46.127 [DEBUG] [.p.i.PersistenceModelActivator:23 ] - Registered 'persistence' configuration parser
14:39:46.378 [DEBUG] [.i.internal.ItemModelActivator:24 ] - Registered 'item' configuration parser
14:39:46.975 [DEBUG] [.o.m.s.i.SitemapModelActivator:23 ] - Registered 'sitemap' configuration parser
14:39:57.010 [DEBUG] [.r.internal.RuleModelActivator:42 ] - Registered 'rules' configuration parser
14:40:00.303 [DEBUG] [j.internal.Jsr223CoreActivator:33 ] - Registered 'jsr223' scripting-engine
All is well now? :-)
Rgds Helmut
O.k., I must have had the old openHAB Runtime.launch still around. With the new one, everything works.
If the jsr223 engine plugin is started at the default runlevel, and a script is present (e.g. foo.js is in the scripts directory), the NPE below is thrown, and the system goes into an unusable state (items are no longer found etc).
The reason seems to be a circular reference, the details of which I don't comprehend. Just fixing the NPE (for instance by deferring setting "active" to true at a later time) does not do the trick (I tried), the system will still be in a broken state as far as item discovery is concerned.
The workaround is to bump the runlevel to 5 (with all the other bundles starting at runlevel 4). Somehow that does the trick. Another (hardly practical) workaround is to only copy the scripts into place after startup.