[ http://jira.jboss.com/jira/browse/EJBTHREE-665?page=all
a> ]
Nicolas Leroux updated EJBTHREE-665:
------------------------------------
Attachment: EJB-665.patch
Same but with typo fixed in errror message : EntityManager
must be accessed within a transaction.
> PostConstruct throws NPE when EntityManager is used
> ----------------------------------------------------
>
> Key: EJBTHREE-665
> URL: http:/
/jira.jboss.com/jira/browse/EJBTHREE-665
> Project: EJB 3.0
> Issue Type: Bug
> Components: EJB3 Extensions
> Affects Versions: EJB 3.0 RC8 - FD
> Environment: Windows XP, JBoss 4.0.4.GA +
EJB-3.0-RC8
> Reporter: Steven Verze
> Attachments: EJB-665.patch, EJB-665.patch
>
>
> PostConstruct method throws NPE when called on a
stateless session bean.
> The method iteself accesses the enetity manager and
tries create a query, the following exception is
experienced:
> java.lang.RuntimeException:
java.lang.NullPointerException
> at
org.jboss.ejb3.interceptor.LifecycleInterceptorHandler.postC
onstruct(LifecycleInterceptorHandler.java:109)
> at
org.jboss.ejb3.EJBContainer.invokePostConstruct(EJBContainer
.java:582)
> at
org.jboss.ejb3.AbstractPool.create(AbstractPool.java:108)
> at
org.jboss.ejb3.ThreadlocalPool.get(ThreadlocalPool.java:48)
> at
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke
(StatelessInstanceInterceptor.java:54)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.aspects.security.AuthenticationInterceptor.invoke(
AuthenticationInterceptor.java:78)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagati
onInterceptor.java:47)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(A
synchronousInterceptor.java:106)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(St
atelessContainer.java:227)
> at
org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
> at
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invo
ke(AOPRemotingInvocationHandler.java:82)
> at
org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:8
28)
> at
org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:6
81)
> at
org.jboss.remoting.transport.socket.ServerThread.processInvo
cation(ServerThread.java:358)
> at
org.jboss.remoting.transport.socket.ServerThread.dorun(Serve
rThread.java:398)
> at
org.jboss.remoting.transport.socket.ServerThread.run(ServerT
hread.java:239)
> Caused by: java.lang.NullPointerException
> at
org.jboss.ejb3.entity.ManagedEntityManagerFactory.getNonTxEn
tityManager(ManagedEntityManagerFactory.java:58)
> at
org.jboss.ejb3.entity.ManagedEntityManagerFactory.getTransac
tionScopedEntityManager(ManagedEntityManagerFactory.java:163
)
> at
org.jboss.ejb3.entity.TransactionScopedEntityManager.createQ
uery(TransactionScopedEntityManager.java:125)
> at
com.teleglobal.modules.snapaccount.services.SnapAccountSendP
rocessServiceBean.initialiseSpendCardQuery(SnapAccountSendPr
ocessServiceBean.java:83)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:39)
> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
org.jboss.ejb3.interceptor.LifecycleInvocationContextImpl.pr
oceed(LifecycleInvocationContextImpl.java:159)
> at
org.jboss.ejb3.interceptor.LifecycleInterceptorHandler.postC
onstruct(LifecycleInterceptorHandler.java:105)
> at
org.jboss.ejb3.EJBContainer.invokePostConstruct(EJBContainer
.java:582)
> at
org.jboss.ejb3.AbstractPool.create(AbstractPool.java:108)
> at
org.jboss.ejb3.ThreadlocalPool.get(ThreadlocalPool.java:48)
> at
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke
(StatelessInstanceInterceptor.java:54)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.aspects.security.AuthenticationInterceptor.invoke(
AuthenticationInterceptor.java:78)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagati
onInterceptor.java:47)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(A
synchronousInterceptor.java:106)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(St
atelessContainer.java:227)
> at
org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
> at
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invo
ke(AOPRemotingInvocationHandler.java:82)
> at
org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:8
28)
> at
org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:6
81)
> at
org.jboss.remoting.transport.socket.ServerThread.processInvo
cation(ServerThread.java:358)
> at
org.jboss.remoting.transport.socket.ServerThread.dorun(Serve
rThread.java:398)
> at
org.jboss.remoting.transport.socket.ServerThread.run(ServerT
hread.java:239)
> at
org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientIn
voker.java:190)
> at org.jboss.remoting.Client.invoke(Client.java:525)
> at org.jboss.remoting.Client.invoke(Client.java:488)
> at
org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(In
vokeRemoteInterceptor.java:55)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(C
lientTxPropagationInterceptor.java:61)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.aspects.security.SecurityClientInterceptor.invoke(
SecurityClientInterceptor.java:55)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInt
erceptor.java:78)
> at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodIn
vocation.java:101)
> at
org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(Statele
ssRemoteProxy.java:102)
> at $Proxy3.getBatchNumbers(Unknown Source)
> at
com.teleglobal.modules.snapaccount.services.SnapAccountSendP
rocessServiceTest.testGetBatchNumbers(SnapAccountSendProcess
ServiceTest.java:57)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:39)
> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
junit.framework.TestCase.runTest(TestCase.java:154)
> at
junit.framework.TestCase.runBare(TestCase.java:127)
> at
junit.framework.TestResult$1.protect(TestResult.java:106)
> at
junit.framework.TestResult.runProtected(TestResult.java:124)
> at
junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:118)
> at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
sts(RemoteTestRunner.java:478)
> at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(R
emoteTestRunner.java:344)
> at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
RemoteTestRunner.java:196)
> Here is a the post construct method:
> PostConstruct
> void initialiseSpendCardQuery()
> {
> StringBuilder sendCardQueryString = new
StringBuilder();
> sendCardQueryString.append("SELECT c FROM Card
AS c WHERE c.status = 'U' AND c.batchNumber IN (");
>
> long[] batchNumbers = getBatchNumbers();
> for (int i = 0; i < batchNumbers.length; i++)
> {
>
sendCardQueryString.append("?").append(i);
> if (i+1 < batchNumbers.length)
> sendCardQueryString.append(",");
> }
> sendCardQueryString.append(") AND c NOT IN
(SELECT lc.sendCard FROM SendCardLock AS lc)");
> sendCardQuery =
entityManager.createQuery(sendCardQueryString.toString());
>
> for (int i = 0; i < batchNumbers.length; i++)
> sendCardQuery.setParameter(i, batchNumbers[i]);
> }
> It happens when the entityManager is used.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the
administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atl
assian.com/software/jira
_______________________________________________
jboss-jira mailing list
jboss-jira lists.jboss.org
h
ttps://lists.jboss.org/mailman/listinfo/jboss-jira
|