From jira-events at lists.jboss.org Mon Aug 16 11:42:12 2010 Content-Type: multipart/mixed; boundary="===============8509543335999736313==" MIME-Version: 1.0 From: Lincoln Baxter III (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Created: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Mon, 16 Aug 2010 11:42:12 -0400 Message-ID: <605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> --===============8509543335999736313== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans= .) ---------------------------------------------------------------------------= -- Key: JBAS-8345 URL: https://jira.jboss.org/browse/JBAS-8345 Project: JBoss Application Server Issue Type: Bug Security Level: Public (Everyone can see) Components: Weld/CDI Affects Versions: 6.0.0.M4 Environment: Linux 32bit, Java 6 Reporter: Lincoln Baxter III Assignee: Marius Bogoevici Attachments: ejb-inject-test.tar.gz See attached Maven Arquillian Test Project: Test and results also pasted below. Workaround in UserService: Changing the @Inject FeedService fs; annotation = to @EJB FeedService fs; causes injection to occur, but not through CDI. Thanks. ------------------------------------------------------ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import javax.inject.Inject; import org.jboss.arquillian.api.Deployment; import org.jboss.arquillian.api.Run; import org.jboss.arquillian.api.RunModeType; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.ArchivePaths; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.Test; import org.junit.runner.RunWith; /** * @author Lincoln Baxter, III= */ @RunWith(Arquillian.class) @Run(RunModeType.IN_CONTAINER) public class UserServiceTest { @Deployment public static JavaArchive createTestArchive() { return ShrinkWrap.create(JavaArchive.class, "test.jar") .addPackage(UserService.class.getPackage()) .addPackage(FeedService.class.getPackage()) .addManifestResource("test-beans.xml", ArchivePaths.create("= beans.xml")) .addManifestResource("test-persistence.xml", ArchivePaths.cr= eate("persistence.xml")); } @Inject private UserService us; @Inject private FeedService fs; @Test public void testCanInvokedInjectedEJB() throws Exception { assertFalse(fs.isInvoked()); us.invokeUsers(); assertTrue(fs.isInvoked()); } } package org.jboss; import java.io.Serializable; import javax.ejb.Stateful; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; @Stateful public class UserService implements Serializable { private static final long serialVersionUID =3D 2988513095024795683L; @PersistenceContext(type =3D PersistenceContextType.EXTENDED) private EntityManager em; @Inject private FeedService fs; protected EntityManager getEntityManager() { return em; } public void invokeUsers() { fs.invokeFeeds(); } } package org.jboss; import javax.ejb.Stateful; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; @Stateful public class FeedService { private static final long serialVersionUID =3D 5716926734835352145L; @PersistenceContext(type =3D PersistenceContextType.EXTENDED) private EntityManager entityManager; private boolean invoked; protected EntityManager getEntityManager() { return entityManager; } public void invokeFeeds() { this.invoked =3D true; System.out.println("invoked"); } public boolean isInvoked() { return invoked; } } ---------------------------------------------------------------------------= ---- Test set: org.jboss.UserServiceTest ---------------------------------------------------------------------------= ---- Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec <= << FAILURE! testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637 s= ec <<< ERROR! javax.ejb.EJBException: java.lang.NullPointerException at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxIn= terceptor.java:183) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor= .java:251) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java= :349) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:2= 09) at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorW= rapper.java:52) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInter= ceptor.java:76) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Auth= enticationInterceptorv2.java:186) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationIntercept= or.java:41) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerS= hutdownInterceptor.java:67) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(= CurrentInvocationContextInterceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke= (CurrentInvocationInterceptor.java:67) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLIntercept= or.java:86) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer= .java:227) at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer= .java:142) at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvoca= tionHandler.invoke(NoInterfaceViewInvocationHandler.java:148) at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invoke= (JavassistInvocationHandlerAdapter.java:71) at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_javass= ist_15.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja= va:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso= rImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflecti= ons.java:304) at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflect= ionAccess.java:54) at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(S= ecureReflectionAccess.java:163) at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflectio= ns.java:298) at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Enter= priseBeanProxyMethodHandler.java:127) at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHandle= r.java:43) at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_javass= ist_10.java) at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.jav= a:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja= va:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso= rImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMe= thod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCalla= ble.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMeth= od.java:41) at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEventE= xecuter.java:44) at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEventE= xecuter.java:34) at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.ja= va:63) at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEve= ntContext.java:115) at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAd= aptor.java:117) at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:225) at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Ar= quillian.java:297) at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunne= r.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunne= r.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:186) at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Ar= quillian.java:297) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at org.junit.runner.JUnitCore.run(JUnitCore.java:136) at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java= :69) at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servlet= TestRunner.java:84) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic= ationFilterChain.java:324) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil= terChain.java:242) at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(Fil= terDispatcher.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic= ationFilterChain.java:274) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil= terChain.java:242) at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Conversat= ionPropagationFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic= ationFilterChain.java:274) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil= terChain.java:242) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal= ve.java:275) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal= ve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityA= ssociationValve.java:181) at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.even= t(CatalinaContext.java:285) at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invo= ke(CatalinaContext.java:261) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.= java:88) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(= SecurityContextEstablishmentValve.java:93) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav= a:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav= a:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedCon= nectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve= .java:109) at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.in= voke(ActiveRequestResponseCacheValve.java:53) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:= 362) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:8= 77) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process= (Http11Protocol.java:653) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.NullPointerException at org.jboss.UserService.invokeUsers(UserService.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja= va:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso= rImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.= java:122) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:111) at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.= invokeNext(ContainerMethodInvocationWrapper.java:72) at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Interceptor= Sequencer.java:76) at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Inter= ceptorSequencer.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja= va:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso= rImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:= 174) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod= (InvocationContextInterceptor.java:72) at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextI= nterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fill= Method_20903429.java) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(Invo= cationContextInterceptor.java:88) at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextI= nterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_209= 03429.java) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.invo= ke(FutureSerializingInterceptor.java:88) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(Cac= hedConnectionInterceptor.java:62) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.= invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(= TransactionScopedEntityManagerInterceptor.java:56) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInt= erceptor.java:47) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInst= anceInterceptor.java:81) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.ja= va:102) at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(Ses= sionInvocationContextAdapter.java:90) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor= .java:247) ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============8509543335999736313==-- From jira-events at lists.jboss.org Mon Aug 16 11:42:13 2010 Content-Type: multipart/mixed; boundary="===============6697260798185683577==" MIME-Version: 1.0 From: Lincoln Baxter III (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Updated: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Mon, 16 Aug 2010 11:42:12 -0400 Message-ID: <2028837766.2515.1281973332935.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============6697260798185683577== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.pl= ugin.system.issuetabpanels:all-tabpanel ] Lincoln Baxter III updated JBAS-8345: ------------------------------------- Attachment: ejb-inject-test.tar.gz > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============6697260798185683577==-- From jira-events at lists.jboss.org Tue Sep 7 12:43:52 2010 Content-Type: multipart/mixed; boundary="===============7518715665016561716==" MIME-Version: 1.0 From: Marius Bogoevici (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Commented: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Tue, 07 Sep 2010 12:43:52 -0400 Message-ID: <1460295383.9397.1283877832822.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============7518715665016561716== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.plu= gin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D12549468#acti= on_12549468 ] = Marius Bogoevici commented on JBAS-8345: ---------------------------------------- Actually, the problem seems to be specific to injecting into no-interface v= iews. > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============7518715665016561716==-- From jira-events at lists.jboss.org Tue Sep 7 19:41:52 2010 Content-Type: multipart/mixed; boundary="===============2410006657098761169==" MIME-Version: 1.0 From: Marius Bogoevici (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Commented: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Tue, 07 Sep 2010 19:41:52 -0400 Message-ID: <1874144757.9879.1283902912728.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============2410006657098761169== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.plu= gin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D12549528#acti= on_12549528 ] = Marius Bogoevici commented on JBAS-8345: ---------------------------------------- Correcting the previous comment: in this particular scenario, injection int= o EJBs is broken if the BDA is a JAR packaged in a WAR, and there is no WAR= -level beans.xml file. The reason is that org.jboss.weld.integration.deployer.metadata.WeldAwareMe= tadataDeployer checks only for metadata present under the deployment. > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============2410006657098761169==-- From jira-events at lists.jboss.org Tue Sep 7 23:11:52 2010 Content-Type: multipart/mixed; boundary="===============0195007305749102182==" MIME-Version: 1.0 From: Marius Bogoevici (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Closed: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Tue, 07 Sep 2010 23:11:52 -0400 Message-ID: <147321924.10101.1283915512665.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============0195007305749102182== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.pl= ugin.system.issuetabpanels:all-tabpanel ] Marius Bogoevici closed JBAS-8345. ---------------------------------- Fix Version/s: 6.0.0.CR1 Resolution: Done > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Fix For: 6.0.0.CR1 > > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============0195007305749102182==-- From jira-events at lists.jboss.org Fri Sep 24 09:45:29 2010 Content-Type: multipart/mixed; boundary="===============1879517829981220782==" MIME-Version: 1.0 From: Shelly McGowan (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Reopened: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Fri, 24 Sep 2010 09:45:29 -0400 Message-ID: <340892479.23000.1285335929423.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============1879517829981220782== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.pl= ugin.system.issuetabpanels:all-tabpanel ] Shelly McGowan reopened JBAS-8345: ---------------------------------- > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Fix For: 6.0.0.M5 > > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============1879517829981220782==-- From jira-events at lists.jboss.org Fri Sep 24 09:45:29 2010 Content-Type: multipart/mixed; boundary="===============6390880075270258617==" MIME-Version: 1.0 From: Shelly McGowan (JIRA) To: jboss-jira at lists.jboss.org Subject: [jboss-jira] [JBoss JIRA] Resolved: (JBAS-8345) Cannot @Inject an EJB into another EJB (works fine injecting into CDI beans.) Date: Fri, 24 Sep 2010 09:45:29 -0400 Message-ID: <844520257.23005.1285335929752.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com> In-Reply-To: 605296035.2511.1281973332602.JavaMail.tomcat@jira02.app.mwc.hst.phx2.redhat.com --===============6390880075270258617== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable [ https://jira.jboss.org/browse/JBAS-8345?page=3Dcom.atlassian.jira.pl= ugin.system.issuetabpanels:all-tabpanel ] Shelly McGowan resolved JBAS-8345. ---------------------------------- Fix Version/s: 6.0.0.M5 (was: 6.0.0.CR1) Resolution: Done > Cannot @Inject an EJB into another EJB (works fine injecting into CDI bea= ns.) > -------------------------------------------------------------------------= ---- > > Key: JBAS-8345 > URL: https://jira.jboss.org/browse/JBAS-8345 > Project: JBoss Application Server > Issue Type: Bug > Security Level: Public(Everyone can see) = > Components: Weld/CDI > Affects Versions: 6.0.0.M4 > Environment: Linux 32bit, Java 6 > Reporter: Lincoln Baxter III > Assignee: Marius Bogoevici > Fix For: 6.0.0.M5 > > Attachments: ejb-inject-test.tar.gz > > > See attached Maven Arquillian Test Project: > Test and results also pasted below. > Workaround in UserService: Changing the @Inject FeedService fs; annotatio= n to @EJB FeedService fs; causes injection to occur, but not through CDI. > Thanks. > ------------------------------------------------------ > import static org.junit.Assert.assertFalse; > import static org.junit.Assert.assertTrue; > import javax.inject.Inject; > import org.jboss.arquillian.api.Deployment; > import org.jboss.arquillian.api.Run; > import org.jboss.arquillian.api.RunModeType; > import org.jboss.arquillian.junit.Arquillian; > import org.jboss.shrinkwrap.api.ArchivePaths; > import org.jboss.shrinkwrap.api.ShrinkWrap; > import org.jboss.shrinkwrap.api.spec.JavaArchive; > import org.junit.Test; > import org.junit.runner.RunWith; > /** > * @author Lincoln Baxter, I= II > */ > @RunWith(Arquillian.class) > @Run(RunModeType.IN_CONTAINER) > public class UserServiceTest > { > @Deployment > public static JavaArchive createTestArchive() > { > return ShrinkWrap.create(JavaArchive.class, "test.jar") > .addPackage(UserService.class.getPackage()) > .addPackage(FeedService.class.getPackage()) > .addManifestResource("test-beans.xml", ArchivePaths.create= ("beans.xml")) > .addManifestResource("test-persistence.xml", ArchivePaths.= create("persistence.xml")); > } > @Inject > private UserService us; > @Inject > private FeedService fs; > @Test > public void testCanInvokedInjectedEJB() throws Exception > { > assertFalse(fs.isInvoked()); > us.invokeUsers(); > assertTrue(fs.isInvoked()); > } > } > package org.jboss; > import java.io.Serializable; > import javax.ejb.Stateful; > import javax.inject.Inject; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class UserService implements Serializable > { > private static final long serialVersionUID =3D 2988513095024795683L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager em; > @Inject > private FeedService fs; > protected EntityManager getEntityManager() > { > return em; > } > public void invokeUsers() > { > fs.invokeFeeds(); > } > } > package org.jboss; > import javax.ejb.Stateful; > import javax.persistence.EntityManager; > import javax.persistence.PersistenceContext; > import javax.persistence.PersistenceContextType; > @Stateful > public class FeedService > { > private static final long serialVersionUID =3D 5716926734835352145L; > @PersistenceContext(type =3D PersistenceContextType.EXTENDED) > private EntityManager entityManager; > private boolean invoked; > protected EntityManager getEntityManager() > { > return entityManager; > } > public void invokeFeeds() > { > this.invoked =3D true; > System.out.println("invoked"); > } > public boolean isInvoked() > { > return invoked; > } > } > -------------------------------------------------------------------------= ------ > Test set: org.jboss.UserServiceTest > -------------------------------------------------------------------------= ------ > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.991 sec= <<< FAILURE! > testCanInvokedInjectedEJB(org.jboss.UserServiceTest) Time elapsed: 0.637= sec <<< ERROR! > javax.ejb.EJBException: java.lang.NullPointerException > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTx= Interceptor.java:183) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:251) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.ja= va:349) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java= :209) > at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxIntercepto= rWrapper.java:52) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInt= erceptor.java:76) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3Au= thenticationInterceptorv2.java:186) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterce= ptor.java:41) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContaine= rShutdownInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invok= e(CurrentInvocationContextInterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invo= ke(CurrentInvocationInterceptor.java:67) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterce= ptor.java:86) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:227) > at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContain= er.java:142) > at org.jboss.ejb3.nointerface.impl.invocationhandler.NoInterfaceViewInvo= cationHandler.invoke(NoInterfaceViewInvocationHandler.java:148) > at org.jboss.ejb3.proxy.javassist.JavassistInvocationHandlerAdapter.invo= ke(JavassistInvocationHandlerAdapter.java:71) > at org.jboss.UserService_$$_javassist_15.invokeUsers(UserService_$$_java= ssist_15.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflec= tions.java:304) > at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureRefle= ctionAccess.java:54) > at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation= (SecureReflectionAccess.java:163) > at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflect= ions.java:298) > at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(Ent= erpriseBeanProxyMethodHandler.java:127) > at org.jboss.weld.util.CleanableMethodHandler.invoke(CleanableMethodHand= ler.java:43) > at org.jboss.UserService_$$_javassist_10.invokeUsers(UserService_$$_java= ssist_10.java) > at org.jboss.UserServiceTest.testCanInvokedInjectedEJB(UserServiceTest.j= ava:61) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework= Method.java:44) > at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal= lable.java:15) > at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe= thod.java:41) > at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:44) > at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEven= tExecuter.java:34) > at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.= java:63) > at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractE= ventContext.java:115) > at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunner= Adaptor.java:117) > at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244) > at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207) > at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:22= 5) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:76) > at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRun= ner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163) > at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:18= 6) > at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(= Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at org.junit.runner.JUnitCore.run(JUnitCore.java:136) > at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.ja= va:69) > at org.jboss.arquillian.protocol.servlet_3.ServletTestRunner.doGet(Servl= etTestRunner.java:84) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:324) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.resteasy.plugins.server.servlet.FilterDispatcher.doFilter(F= ilterDispatcher.java:63) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(Convers= ationPropagationFilter.java:68) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl= icationFilterChain.java:274) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF= ilterChain.java:242) > at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV= alve.java:275) > at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV= alve.java:191) > at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit= yAssociationValve.java:181) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.ev= ent(CatalinaContext.java:285) > at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.in= voke(CatalinaContext.java:261) > at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv= e.java:88) > at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok= e(SecurityContextEstablishmentValve.java:93) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j= ava:127) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j= ava:102) > at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC= onnectionValve.java:158) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal= ve.java:109) > at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.= invoke(ActiveRequestResponseCacheValve.java:53) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav= a:362) > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java= :877) > at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce= ss(Http11Protocol.java:653) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:95= 1) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at org.jboss.UserService.invokeUsers(UserService.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocatio= n.java:122) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:111) > at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrappe= r.invokeNext(ContainerMethodInvocationWrapper.java:72) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(Intercept= orSequencer.java:76) > at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(Int= erceptorSequencer.java:62) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.jav= a:174) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMeth= od(InvocationContextInterceptor.java:72) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_fillMethod_20903429.invoke(InvocationContextInterceptor_z_fi= llMethod_20903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(In= vocationContextInterceptor.java:88) > at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContex= tInterceptor_z_setup_20903429.invoke(InvocationContextInterceptor_z_setup_2= 0903429.java) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.async.impl.interceptor.FutureSerializingInterceptor.in= voke(FutureSerializingInterceptor.java:88) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(C= achedConnectionInterceptor.java:62) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationIntercepto= r.invoke(ExtendedPersistenceContextPropagationInterceptor.java:74) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok= e(TransactionScopedEntityManagerInterceptor.java:56) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI= nterceptor.java:47) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulIn= stanceInterceptor.java:81) > at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.= java:102) > at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(S= essionInvocationContextAdapter.java:90) > at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxIntercept= or.java:247) > ... 99 more -- = This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: htt= ps://jira.jboss.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira =20 --===============6390880075270258617==--