I have an EJB class annotated  @Singleton and @Startup.
This class in turn contains an @Inject-ed EJB that is @Stateless, and this
stateless EJB has a @Persistence EntityManager.

I'm finding that, when my startup code runs and calls into the stateless,
its EntityManager is still null (see attached log). This happens under
TomEE 1.7.0 too so I don't think it's a regression. But the exact same code
was working for me once upon a time on the same system (with the same java
JDK as well) so I'm not sure what's going on. If I don't use @Startup at
all, there's never any issue reaching the injected EntityManager. Is there
any reason that CDI would not have been ready by the time a stateless
singleton would be able to run?

I'm using hibernate as a provider rather than openJPA, and it works fine
until I use this arrangement.

Using windows 10, Java 8, JDK oracle 201.

Thanks,
-Kean
24-Jul-2019 15:12:10.669 SEVERE [localhost-startStop-1] 
org.apache.openejb.core.transaction.EjbTransactionUtil.handleSystemException 
EjbTransactionUtil.handleSystemException: null
        java.lang.NullPointerException
                at 
org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:210)
                at 
org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:125)
                at 
org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:145)
                at 
org.apache.openejb.persistence.JtaEntityManager.typedProxyIfNoTx(JtaEntityManager.java:382)
                at 
org.apache.openejb.persistence.JtaEntityManager.createQuery(JtaEntityManager.java:454)
                at zzz.SystemManager.find(SystemManager.java:77)
                at zzz.SystemManager.getLastSync(SystemManager.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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
                at 
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
                at 
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:252)
                at 
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:212)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:265)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:260)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:89)
                at 
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:347)
                at 
zzz.SystemManager$$LocalBeanProxy.getLastSync(zzz/SystemManager.java)
                at zzz.BrowserSyncClient.init(BrowserSyncClient.java:46)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:237)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
                at 
org.apache.openejb.monitoring.StatsInterceptor.PostConstruct(StatsInterceptor.java:112)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
                at 
org.apache.openejb.BeanContext.newInstance(BeanContext.java:1735)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:179)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:69)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:120)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:118)
                at 
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
                at java.util.concurrent.FutureTask.run(FutureTask.java)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:129)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:93)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.start(SingletonInstanceManager.java:84)
                at 
org.apache.openejb.core.singleton.SingletonContainer.start(SingletonContainer.java:127)
                at 
org.apache.openejb.assembler.classic.Assembler.startEjbs(Assembler.java:1691)
                at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:994)
                at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:754)
                at 
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
                at 
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
                at 
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
                at 
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
                at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5134)
                at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
                at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
                at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:744)
                at 
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1135)
                at 
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1869)
                at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                at 
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
                at java.util.concurrent.FutureTask.run(FutureTask.java)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
24-Jul-2019 15:12:10.673 SEVERE [localhost-startStop-1] 
org.apache.openejb.core.transaction.EjbTransactionUtil.handleSystemException 
EjbTransactionUtil.handleSystemException: The transaction has been marked 
rollback only because the bean encountered a non-application exception 
:java.lang.NullPointerException : null
        javax.ejb.EJBTransactionRolledbackException: The transaction has been 
marked rollback only because the bean encountered a non-application exception 
:java.lang.NullPointerException : null
                at 
org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:420)
                at 
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:351)
                at 
zzz.SystemManager$$LocalBeanProxy.getLastSync(zzz/SystemManager.java)
                at zzz.BrowserSyncClient.init(BrowserSyncClient.java:46)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext$LifecycleInvocation.invoke(ReflectionInvocationContext.java:237)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
                at 
org.apache.openejb.monitoring.StatsInterceptor.PostConstruct(StatsInterceptor.java:112)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
                at 
org.apache.openejb.BeanContext.newInstance(BeanContext.java:1735)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.createInstance(SingletonInstanceManager.java:179)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.access$100(SingletonInstanceManager.java:69)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:120)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager$1.call(SingletonInstanceManager.java:118)
                at 
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
                at java.util.concurrent.FutureTask.run(FutureTask.java)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.getInstance(SingletonInstanceManager.java:129)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.initialize(SingletonInstanceManager.java:93)
                at 
org.apache.openejb.core.singleton.SingletonInstanceManager.start(SingletonInstanceManager.java:84)
                at 
org.apache.openejb.core.singleton.SingletonContainer.start(SingletonContainer.java:127)
                at 
org.apache.openejb.assembler.classic.Assembler.startEjbs(Assembler.java:1691)
                at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:994)
                at 
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:754)
                at 
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
                at 
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
                at 
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
                at 
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
                at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5134)
                at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
                at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
                at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:744)
                at 
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1135)
                at 
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1869)
                at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
                at 
java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
                at java.util.concurrent.FutureTask.run(FutureTask.java)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
        Caused by: java.lang.NullPointerException
                at 
org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createEntityManager(ReloadableEntityManagerFactory.java:210)
                at 
org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:125)
                at 
org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:145)
                at 
org.apache.openejb.persistence.JtaEntityManager.typedProxyIfNoTx(JtaEntityManager.java:382)
                at 
org.apache.openejb.persistence.JtaEntityManager.createQuery(JtaEntityManager.java:454)
                at zzz.SystemManager.find(SystemManager.java:77)
                at zzz.SystemManager.getLastSync(SystemManager.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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:191)
                at 
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:102)
                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.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
                at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
                at 
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
                at 
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:252)
                at 
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:212)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:265)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:260)
                at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:89)
                at 
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:347)
                ... 49 more

Reply via email to