Hi, I looked for similar problems on the forum, and couldn't find one. I'm using JBoss AS 4.2.1 GA with JBoss Messaging 1.4.0, and the remoting patch. I'm receiving a BytesMessage in an MDB, and the first time the message gets accessed (it's a simple readInt call) I get the following stack trace. This does not occur on all messages, just some of them. I have found no pattern.
anonymous wrote : Exception com.triversity.TriversityUnrecoverableException: JMSException caught while extracting the transactionware message. | at com.triversity.ExceptionLib.abort(ExceptionLib.java:64) | at com.triversity.tef.framework.awcmessagereceiver.MessageCrackerUtil.extractTransactionwareMessage(MessageCrackerUtil.java:119) | at com.triversity.tef.framework.awcmessagereceiver.GenericTransactionwareMessageCracker.getRequestParameters(GenericTransactionwareMessageCracker.java:57) | at com.triversity.tef.framework.awcmessagereceiver.MessageReceiverProcessing.getCrackedMessage(MessageReceiverProcessing.java:167) | at com.triversity.tef.framework.awcmessagereceiver.MessageReceiverProcessing.processMessage(MessageReceiverProcessing.java:139) | at com.triversity.tef.framework.awcmessagereceiver.ejb.AwcMessageReceiverBean.onMessage(AwcMessageReceiverBean.java:152) | at com.saptrv.te.ejb.PosMDB.onMessage(PosMDB.java:54) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | at java.lang.reflect.Method.invoke(Unknown Source) | 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:987) | at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1287) | at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266) | at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:157) | at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:801) | at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java) | at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java) | at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170) | at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105) | at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java) | at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java) | at org.jboss.jms.client.JBossSession.run(JBossSession.java:199) | at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194) | at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748) | at java.lang.Thread.run(Unknown Source) | Trace of original exception: javax.jms.MessageEOFException: | at org.jboss.jms.message.JBossBytesMessage.readInt(JBossBytesMessage.java:265) | at org.jboss.jms.message.BytesMessageProxy.readInt(BytesMessageProxy.java:128) | at com.triversity.tef.framework.awcmessagereceiver.MessageCrackerUtil.extractTransactionwareMessage(MessageCrackerUtil.java:106) | at com.triversity.tef.framework.awcmessagereceiver.GenericTransactionwareMessageCracker.getRequestParameters(GenericTransactionwareMessageCracker.java:57) | at com.triversity.tef.framework.awcmessagereceiver.MessageReceiverProcessing.getCrackedMessage(MessageReceiverProcessing.java:167) | at com.triversity.tef.framework.awcmessagereceiver.MessageReceiverProcessing.processMessage(MessageReceiverProcessing.java:139) | at com.triversity.tef.framework.awcmessagereceiver.ejb.AwcMessageReceiverBean.onMessage(AwcMessageReceiverBean.java:152) | at com.saptrv.te.ejb.PosMDB.onMessage(PosMDB.java:54) | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) | at java.lang.reflect.Method.invoke(Unknown Source) | 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:987) | at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1287) | at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:266) | at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:157) | at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:801) | at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java) | at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java) | at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170) | at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105) | at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java) | at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java) | at org.jboss.jms.client.JBossSession.run(JBossSession.java:199) | at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:194) | at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748) | at java.lang.Thread.run(Unknown Source) I've done some analysis, and it seems that when trying to read a BytesMessage, the JBossBytesMessage implementation uses an internal ByteArrayInputStream and DataInputStream. When I run the code and it fails, through a debugger, I can see that the bais is properly populated, but the dis is out of synch with it (it's full of 0's - nulls). When the code succeeds, both the bais and dis are null, and get properly populated through the checkRead() method. I'm at a complete loss. Is this a bug in my code (very possible) or something in the messaging code? Thanks in advance, Rick View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4100442#4100442 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4100442 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
