Hi, I have tried to create a small application based on Meecrowave and JPA extension. But when I always try to persist an entity, it fails with a NullPointerException which I cannot really drill down to find the root cause.
First I thought injected EntityManager is null but logging the EntityManager call told me, that it really exists. PersistenceUnitInfoBuilder and DataSource is produced like described on http://openwebbeans.apache.org/meecrowave/meecrowave-jpa/index.html <http://openwebbeans.apache.org/meecrowave/meecrowave-jpa/index.html> The called InstrumentDao looks like this: @ApplicationScoped @Jpa(transactional = false) public class InstrumentDao { @Inject @Unit(name = "depot") private EntityManager em; @Jpa public void save (Instrument instrument) { em.merge(instrument); } … } The entity Instrument is defined like this: @Entity @Table(name = "INSTRUMENT") public class Instrument implements Serializable { @Id private String isin; private String name; public Instrument() { } … } Stacktrace is like following: Caused by: java.lang.NullPointerException at org.apache.meecrowave.jpa.internal.EntityManagerBean.destroy(EntityManagerBean.java:95) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.meecrowave.jpa.internal.EntityManagerBean.destroy(EntityManagerBean.java:29) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.webbeans.component.third.ThirdpartyBeanImpl.destroy(ThirdpartyBeanImpl.java:113) ~[openwebbeans-impl-2.0.1.jar:2.0.1] at org.apache.meecrowave.jpa.internal.EntityManagerContext$ThreadContext.doDestroy(EntityManagerContext.java:130) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.meecrowave.jpa.internal.EntityManagerContext$ThreadContext.lambda$exit$1(EntityManagerContext.java:140) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at java.util.HashMap.forEach(HashMap.java:1280) ~[?:1.8.0_77] at org.apache.meecrowave.jpa.internal.EntityManagerContext$ThreadContext.exit(EntityManagerContext.java:140) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.meecrowave.jpa.internal.EntityManagerContext$ThreadContext.access$300(EntityManagerContext.java:94) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.meecrowave.jpa.internal.EntityManagerContext.exit(EntityManagerContext.java:52) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at org.apache.meecrowave.jpa.internal.JpaInterceptorBase.inTransaction(JpaInterceptorBase.java:40) ~[meecrowave-jpa-1.1.0.jar:1.1.0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_77] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_77] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_77] at org.apache.webbeans.component.InterceptorBean.intercept(InterceptorBean.java:136) ~[openwebbeans-impl-2.0.1.jar:2.0.1] at org.apache.webbeans.intercept.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:65) ~[openwebbeans-impl-2.0.1.jar:2.0.1] at org.apache.webbeans.intercept.DefaultInterceptorHandler.invoke(DefaultInterceptorHandler.java:139) ~[openwebbeans-impl-2.0.1.jar:2.0.1] at org.kivio.depot.dao.InstrumentDao$$OwbInterceptProxy0.save(org/kivio/depot/dao/InstrumentDao.java) ~[?:?] at org.kivio.depot.dao.InstrumentDao$$OwbNormalScopeProxy0.save(org/kivio/depot/dao/InstrumentDao.java) ~[?:?] at org.kivio.depot.service.DepotService.addInstrument(DepotService.java:69) ~[classes/:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_77] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_77] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_77] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_77] Someone can give me a hint what I am doing wrong? Kind regards, Björn
