2 Replies Latest reply on Apr 12, 2011 9:04 PM by tmuldo

    Can't find resource for bundle java.util.PropertyResourceBundle, key com.arjuna.ats.internal.jta.transaction.arjunacore.syncrollbackmexception

    tmuldo

      I've recently upgraded to JBoss AS 5.1 and I'm running into a problem when my code throws a runtime exception from within a transaction. Apparently, there's a bug that crept into AS 5.1 (in the arjuna source code regarding the spelling of "syncrollbackmexception"). Here's the full stack trace...

       

      {font:courier new}

          exception: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key com.arjuna.a

      ts.internal.jta.transaction.arjunacore.syncrollbackmexception

              at java.util.ResourceBundle.getObject(ResourceBundle.java:374)

              at java.util.ResourceBundle.getString(ResourceBundle.java:334)

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple.registerInterposedSynchronizat

      ion(TransactionSynchronizationRegistryImple.java:145)

              at org.springframework.transaction.jta.JtaTransactionManager$InterposedSynchronizationDelegate.registerInterposedSynchroniza

      tion(JtaTransactionManager.java:1210)

              at org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCompletionWithJtaTransaction(JtaTransactionManag

      er.java:1148)

              at org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompletionWithExistingTransaction(JtaTransactionMa

      nager.java:1098)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransac

      tionManager.java:932)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionMan

      ager.java:829)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.ja

      va:777)

              at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSu

      pport.java:339)

              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

              at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)

              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)

              at com.firstbest.underwriting.form.FieldServiceImpl$$EnhancerByCGLIB$$f731c32.createFieldByFormId(<generated>)

              at com.firstbest.underwriting.form.FieldAssembler.createItem(FieldAssembler.java:93)

              at flex.data.adapters.JavaAdapter.doCreateItem(JavaAdapter.java:1829)

              at flex.data.adapters.JavaAdapter.invokeAssemblerSync(JavaAdapter.java:1698)

              at flex.data.adapters.JavaAdapter.invokeBatchOperation(JavaAdapter.java:1562)

              at flex.data.adapters.JavaAdapter.invoke(JavaAdapter.java:636)

              at com.firstbest.flex.NewDataServiceJavaAdapter.invokeSuper(NewDataServiceJavaAdapter.java:34)

              at com.firstbest.flex.NewDataServiceJavaAdapter.invoke(NewDataServiceJavaAdapter.java:84)

              at flex.messaging.services.MessageService.serviceMessage(MessageService.java:276)

              at flex.data.DataService.sendBatchToAdapter(DataService.java:1414)

              at flex.data.DataService.serviceTransactedMessage(DataService.java:787)

              at flex.data.DataService.serviceMessage(DataService.java:465)

              at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)

              at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint.serviceMessageInternal(RTMPEndpoint.java:76)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint$1.doServiceMessage(RTMPEndpoint.java:39)

              at com.firstbest.flex.messaging.endpoints.EndpointTemplate.invokeService(EndpointTemplate.java:144)

              at com.firstbest.flex.messaging.endpoints.EndpointTemplate.serviceMessage(EndpointTemplate.java:109)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint.serviceMessage(RTMPEndpoint.java:37)

              at flex.messaging.endpoints.RTMPConnection.handleTCCommand(RTMPConnection.java:722)

              at flex.messaging.endpoints.RTMPConnection.serviceTCMessage(RTMPConnection.java:1032)

              at flex.messaging.endpoints.RTMPConnection.doRead(RTMPConnection.java:510)

              at flex.messaging.endpoints.RTMPProtocolHandler.doRead(RTMPProtocolHandler.java:123)

              at flex.messaging.socketserver.Connection$ConnectionReader.run(Connection.java:791)

              at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

              at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

              at java.lang.Thread.run(Thread.java:662)

      {font}

       

      After setting a breakpoint and after correcting the misspelling, I'm now getting the following error...

       

      {font:courier new}

        Exception: java.lang.RuntimeException: [com.arjuna.ats.internal.jta.transaction.arjunacore.syncrollbackexception] [com.arjuna.ats.

      internal.jta.transaction.arjunacore.syncrollbackexception] The transaction implementation threw a RollbackException

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple.registerInterposedSynchronizat

      ion(TransactionSynchronizationRegistryImple.java:145)

              at org.springframework.transaction.jta.JtaTransactionManager$InterposedSynchronizationDelegate.registerInterposedSynchroniza

      tion(JtaTransactionManager.java:1210)

              at org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCompletionWithJtaTransaction(JtaTransactionManag

      er.java:1148)

              at org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompletionWithExistingTransaction(JtaTransactionMa

      nager.java:1098)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion(AbstractPlatformTransac

      tionManager.java:932)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionMan

      ager.java:829)

              at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.ja

      va:777)

              at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSu

      pport.java:339)

              at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

              at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)

              at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

              at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)

              at com.firstbest.underwriting.form.FieldServiceImpl$$EnhancerByCGLIB$$f731c32.updateById(<generated>)

              at com.firstbest.underwriting.form.FieldAssembler.updateItem(FieldAssembler.java:131)

              at flex.data.adapters.JavaAdapter.doUpdateItem(JavaAdapter.java:1909)

              at flex.data.adapters.JavaAdapter.invokeAssemblerSync(JavaAdapter.java:1701)

              at flex.data.adapters.JavaAdapter.invokeBatchOperation(JavaAdapter.java:1562)

              at flex.data.adapters.JavaAdapter.invoke(JavaAdapter.java:636)

              at com.firstbest.flex.NewDataServiceJavaAdapter.invokeSuper(NewDataServiceJavaAdapter.java:34)

              at com.firstbest.flex.NewDataServiceJavaAdapter.invoke(NewDataServiceJavaAdapter.java:84)

              at flex.messaging.services.MessageService.serviceMessage(MessageService.java:276)

              at flex.data.DataService.sendBatchToAdapter(DataService.java:1414)

              at flex.data.DataService.serviceTransactedMessage(DataService.java:787)

              at flex.data.DataService.serviceMessage(DataService.java:465)

              at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)

              at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint.serviceMessageInternal(RTMPEndpoint.java:76)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint$1.doServiceMessage(RTMPEndpoint.java:39)

              at com.firstbest.flex.messaging.endpoints.EndpointTemplate.invokeService(EndpointTemplate.java:144)

              at com.firstbest.flex.messaging.endpoints.EndpointTemplate.serviceMessage(EndpointTemplate.java:109)

              at com.firstbest.flex.messaging.endpoints.RTMPEndpoint.serviceMessage(RTMPEndpoint.java:37)

              at flex.messaging.endpoints.RTMPConnection.handleTCCommand(RTMPConnection.java:722)

              at flex.messaging.endpoints.RTMPConnection.serviceTCMessage(RTMPConnection.java:1032)

              at flex.messaging.endpoints.RTMPConnection.doRead(RTMPConnection.java:510)

              at flex.messaging.endpoints.RTMPProtocolHandler.doRead(RTMPProtocolHandler.java:123)

              at flex.messaging.socketserver.Connection$ConnectionReader.run(Connection.java:791)

              at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

              at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

              at java.lang.Thread.run(Thread.java:662)

      Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.syncwhenaborted] [com.arjuna.ats

      .internal.jta.transaction.arjunacore.syncwhenaborted] Can't register synchronization because the transaction is in aborted state

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.registerSynchronizationImple(TransactionImple.java:47

      6)

              at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple.registerInterposedSynchronizat

      ion(TransactionSynchronizationRegistryImple.java:141)

              ... 39 more

      {font}

       

      With that said, the question arises why am I running into this issue now with AS 5.1 when I did not run into it with AS 4.2.3?