List Info

Thread: Updated: (EJBTHREE-665) @PostConstruct throws NPE when EntityManager is us




Updated: (EJBTHREE-665) @PostConstruct throws NPE when EntityManager is us
country flaguser name
United States
2007-02-28 07:27:44
     [ http://jira.jboss.com/jira/browse/EJBTHREE-665?page=all ]

Nicolas Leroux updated EJBTHREE-665:
------------------------------------

    Attachment: EJB-665.patch

Removed the unused import.

> 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,
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-jiralists.jboss.org
h
ttps://lists.jboss.org/mailman/listinfo/jboss-jira

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )