Release 2021.7.0 · OpenEMS/openems

Hello, I can’t have the Backend working with this version ( neither the 21.6)
I have a nullPointerException at startup

io.openems.backend.application [io.openems.backend.application.BackendApp] INFO : ==========================================
io.openems.backend.application [io.openems.backend.application.BackendApp] INFO : OpenEMS Backend version [2021.7.0] started
io.openems.backend.application [io.openems.backend.application.BackendApp] INFO : ==========================================
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] ERROR io.openems.backend.application.BackendApp - bundle io.openems.backend.application:1.0.0.202104130710 (6)[io.openems.backend.application.BackendApp(0)] : The activate method has thrown an exception
java.lang.NullPointerException
at io.openems.backend.application.BackendApp.activate(BackendApp.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:244)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41)
at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:685)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:529)
at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:318)
at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:308)
at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:354)
at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:115)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:1000)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:973)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:785)
at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1271)
at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1222)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1200)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1121)
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:928)
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:864)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1152)
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:114)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:120)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:957)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:936)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:873)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:141)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:261)
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:496)
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:515)
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:1050)
at org.apache.felix.cm.impl.ConfigurationManager.start(ConfigurationManager.java:199)
at org.apache.felix.cm.impl.ConfigurationAdminStarter.activate(ConfigurationAdminStarter.java:78)
at org.apache.felix.cm.impl.DependencyTracker.(DependencyTracker.java:99)
at org.apache.felix.cm.impl.Activator.start(Activator.java:114)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:814)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:806)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:763)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1012)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:366)
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1845)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1838)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1781)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1743)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1665)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
org.apache.felix.http.jetty [org.eclipse.jetty.util.log] INFO : Logging initialized @1232ms to org.eclipse.jetty.util.log.Slf4jLog
org.apache.felix.http.jetty [org.eclipse.jetty.server.Server] INFO : jetty-9.4.38.v20210224; built: 2021-02-24T20:25:07.675Z; git: 288f3cc74549e8a913bf363250b0744f2695b8e6; jvm 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
org.apache.felix.http.jetty [org.eclipse.jetty.server.session] INFO : DefaultSessionIdManager workerName=node0
org.apache.felix.http.jetty [org.eclipse.jetty.server.session] INFO : No SessionScavenger set, using defaults
org.apache.felix.http.jetty [org.eclipse.jetty.server.session] INFO : node0 Scavenging every 660000ms
org.apache.felix.http.jetty [org.eclipse.jetty.server.handler.ContextHandler] INFO : Started o.e.j.s.ServletContextHandler@84b7dcd{/,null,AVAILABLE}
org.apache.felix.http.jetty [org.eclipse.jetty.server.Server] INFO : Started @1348ms
org.apache.felix.http.jetty [org.eclipse.jetty.server.session] INFO : node0 Scavenging every 660000ms
org.apache.felix.http.jetty [org.eclipse.jetty.server.AbstractConnector] INFO : Started ServerConnector@4c2badf6{HTTP/1.1, (http/1.1)}{0.0.0.0:8079}
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.apache.felix.http.jetty - Started Jetty 9.4.38.v20210224 at port(s) HTTP:8079 on context path / [minThreads=8,maxThreads=200,acceptors=1,selectors=6]
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling Java Util Logging API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling SLF4J API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling Apache Commons Logging API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling JULI Logger API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling Avalon Logger API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling JBoss Logging API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling Log4J v1 API support.
[Start Level: Equinox Container: 84dd935d-30ab-4823-ba12-9fcabfe2bc3d] INFO org.ops4j.pax.logging.internal.Activator - Enabling Log4J v2 API support.

Hi Siden,

Thanks for the info. I was not fully awaret that Config.getProperties() could be null. Can you check if the following pull-request fixes the problem for you?

Thanks
Stefan

thanks, I don’t have the nullPointerException anymore.
But my backend is blocked at this stage

org.apache.felix.http.jetty [org.eclipse.jetty.server.AbstractConnector] INFO : Started ServerConnector@119caf47{HTTP/1.1, (http/1.1)}{0.0.0.0:8079}
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.apache.felix.http.jetty - Started Jetty 9.4.38.v20210224 at port(s) HTTP:8079 on context path / [minThreads=8,maxThreads=200,acceptors=1,selectors=6]
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling Java Util Logging API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling SLF4J API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling Apache Commons Logging API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling JULI Logger API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling Avalon Logger API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling JBoss Logging API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling Log4J v1 API support.
[Start Level: Equinox Container: cc104642-dc8a-4612-888f-a03dea42fd8a] INFO org.ops4j.pax.logging.internal.Activator - Enabling Log4J v2 API support.

Are you sure you have a valid configuration for OpenEMS Backend? It just seems like no Components are started.

The Backend works fine with this patch in the Gitpod environment based on Docker: Gitpod - Dashboard

Ok it was a wrong path for the felix dir.