1 Reply Latest reply on Apr 19, 2010 3:35 PM by andreas_back

    Exception in GlobalTxEntityMap of JBoss 4.2.3

    andreas_back Novice

      Hello!

       

      In an early stage of a migration project from JBoss 3.2.4 to JBoss 4.2.3 (and from EJB 1.x to EJB 2.1) we see the following exception:

       

      2010-04-14 23:52:54,733 ERROR [org.jboss.ejb.plugins.LogInterceptor] TransactionRolledbackLocalException in method: public abstract java.util.Collection de.intermoves.pbseasyzds.sortimente.SortimentLocalHome.findMediaSortimenteOfTeilnehmer(int) throws javax.ejb.FinderException, causedBy:
      java.lang.UnsupportedOperationException
          at org.jboss.ejb.GlobalTxEntityMap$1.invokeEjbStore(GlobalTxEntityMap.java:113)
          at org.jboss.ejb.GlobalTxEntityMap$GlobalTxSynchronization.synchronize(GlobalTxEntityMap.java:300)
          at org.jboss.ejb.GlobalTxEntityMap.synchronizeEntities(GlobalTxEntityMap.java:227)
          at org.jboss.ejb.EntityContainer.synchronizeEntitiesWithinTransaction(EntityContainer.java:136)
          at org.jboss.ejb.EntityContainer.findLocal(EntityContainer.java:658)
          at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
          at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1126)
          at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:203)
          at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:189)
          at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:105)
          at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:136)
          at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:76)
          at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:45)
          at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValidationInterceptor.java:56)
          at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:125)
          at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
          at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:161)
          at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:145)
          at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:132)
          at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyFactoryFinderInterceptor.java:107)
          at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java:521)
          at org.jboss.ejb.Container.invoke(Container.java:981)
          at org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invokeHome(BaseLocalProxyFactory.java:359)
          at org.jboss.ejb.plugins.local.LocalHomeProxy.invoke(LocalHomeProxy.java:133)
          at $Proxy81.findMediaSortimenteOfTeilnehmer(Unknown Source)
          at de.intermoves.pbseasyzds.control.ResponseMsgBean.handleResponse(ResponseMsgBean.java:1646)
          at de.intermoves.pbseasyzds.control.ResponseMsgBean.onMessage(ResponseMsgBean.java:1928)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
          at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:495)
          at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158)
          at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:116)
          at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63)
          at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
          at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
          at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
          at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:109)
          at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
          at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
          at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:402)
          at org.jboss.ejb.Container.invoke(Container.java:960)
          at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1092)
          at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1392)
          at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266)
          at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:906)
          at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
          at org.jboss.mq.SpySession.run(SpySession.java:323)
          at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194)
          at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:756)
          at java.lang.Thread.run(Thread.java:619)
      

       

      This first 4 entries in the stack trace are identical to the lines posted in the stack trace in the discussion thread http://community.jboss.org/message/230012#230012 .

       

      The execption is thrown when the method invokeEjbStore of the object NONE in the following code of the class GlobalTxEntityMap is called:

       

      public static final TxAssociation NONE = new TxAssociation()
         {
            public void scheduleSync(Transaction tx, EntityEnterpriseContext instance)
               throws SystemException, RollbackException
            {
               EntityContainer.getGlobalTxEntityMap().associate(tx, instance);
               instance.setTxAssociation(SYNC_SCHEDULED);
            }
      
            public void synchronize(Thread thread, Transaction tx, EntityEnterpriseContext instance)
            {
               throw new UnsupportedOperationException();
            }
      
            public void invokeEjbStore(Thread thread, EntityEnterpriseContext instance)
            {
               throw new UnsupportedOperationException();
            }
         };
      

       

      The execption occurs whithin a message driven bean "ResponseMsgBean" with the following specification in the ejb-jar.xml:

       

       

      <container-transaction >
            <method >
               <ejb-name>ResponseMsgBean</ejb-name>
                <method-name>*</method-name>
             </method>
             <trans-attribute>Required</trans-attribute>
          </container-transaction>
      

       

      Question:      What can be changed to prevent this exception?

       

      Any help is appreciated!

       

      Greetings

       

      Andreas