On Thu, Jun 18, 2009 at 3:28 PM, RuneB <rune.b...@spk.no> wrote: > > A couple of more points: > > * 1.6.0 behaves like 1.6.1, as far as I can tell. > > * Loss of message body only occurs if *unmarshalling has taken place*. > We've > an element like this: > <unmarshal> > <jaxb prettyPrint="true" > contextPath="no.spk.felles.domene.melding" /> > </unmarshal> > If I replace this element (and the bean calls it's for), with a bean call > that simply throws an exception, > the message body will be intact after the message has been moved by > onException. >
Is it the JAXB unmarshaller that throws the exception? Eg does the exception occur during JAXB unmarshalling? What does the body look like after the unmarshal? You can use a processor to do some system out, or use the Tracer in Camel to look it. Maybe the JAXB clears the body before hand it tries to convert it. As a side note: In Camel 2.0 there is a new option: useOriginalBody that allows you to use the body that you received when the route started. This allows you to store the original payload instead of the mutated. > - Rune > > > > Claus Ibsen-2 wrote: > > > > On Thu, Jun 18, 2009 at 10:51 AM, RuneB <rune.b...@spk.no> wrote: > > > >> > >> Hi, > >> > >> The message body is definitely there when the message is consumed from > >> the > >> original queue. > >> > >> It's in the moving to the destination queue, as a result of an > exception, > >> that the message body is lost. > >> > >> I'm inspecting the destination queue using the ActiveMQ admin tool. > Also, > >> we > >> have a bean that in turn consumes the destination queue; debugging this > >> bean > >> confirms that the body is lost. > >> > >> I'll get back to you about the other things you asked. > > > > > > Cool. I will be out of office in a hour or so, but will be back on > monday. > > > > > > > >> > >> > >> - Rune > >> > >> > >> > >> Claus Ibsen-2 wrote: > >> > > >> > Hi > >> > No we have not have this reported before. > >> > Could you create a small unit test that demonstrates this bug / issue? > >> > > >> > Do you say you loose the body when you consume it from the JMS queue? > >> > Or do you lose the body before its sent to the JMS queue? > >> > eg when you use a JMS queue browser can you see the body? > >> > > >> > Can you try with 1.6.0 also. That would help narrow down the number of > >> > code > >> > changes in between. > >> > > >> > > >> > > >> > > >> > On Thu, Jun 18, 2009 at 10:23 AM, RuneB <rune.b...@spk.no> wrote: > >> > > >> >> > >> >> After upgrading from 1.5.0 to 1.6.1, we find that that exception > >> clauses > >> >> such > >> >> as this one > >> >> > >> >> <onException> > >> >> <exception>my.package.SomeException</exception> > >> >> <redeliveryPolicy maximumRedeliveries="0" /> > >> >> <handled> > >> >> <constant>true</constant> > >> >> </handled> > >> >> <to ref="tpforholdArbeidskoe" /> > >> >> </onException> > >> >> > >> >> cause the message body to be *empty* after the message has been moved > >> to > >> >> tpforholdArbeidskoe. > >> >> > >> >> (tpforholdArbeidskoe is a message queue on ActiveMQ, as is the > route's > >> >> from-endpoint). > >> >> > >> >> The following trace may be of relevance: > >> >> --------------------------------------------------- > >> >> 17:11:20,844 ERROR [STDERR] 17.jun.2009 17:11:20 > >> >> org.apache.camel.component.jms.JmsProducer process > >> >> WARNING: Disabling JMSReplyTo as this Exchange is not OUT capable: > >> >> Exchange[JmsMessage: ActiveMQTextMessage {commandId = > >> >> 8, responseRequired = false, messageId = > >> >> ID:vmutvjee1-b58-2757-1245247294282-2:3:1:1:4, originalDestination = > >> >> null, > >> >> ori > >> >> ginalTransactionId = null, producerId = > >> >> ID:vmutvjee1-b58-2757-1245247294282-2:3:1:1, destination = > >> >> queue://queue.samordn > >> >> ing.TPForhold, transactionId = null, expiration = 0, timestamp = > >> >> 1245251471047, arrival = 0, brokerInTime = 124525147106 > >> >> 3, brokerOutTime = 1245251471063, correlationId = , replyTo = null, > >> >> persistent = false, type = , priority = 0, groupID = > >> >> null, groupSequence = 0, targetConsumerId = null, compressed = > false, > >> >> userID = null, content = null, marshalledProperti > >> >> es = null, dataStructure = null, redeliveryCounter = 0, size = 0, > >> >> properties > >> >> = null, readOnlyProperties = true, readOnly > >> >> Body = true, droppable = false, text = <?xml version="1.0" > >> >> encoding="UTF-8"?> > >> >> <TPForholdHendelse> > >> >> <type>Opprett</type> > >> >> <ordning>1015</ordning> > >> >> <datKundeFoedtNum>xxxxxxx</datKundeFoedtNum> > >> >> <ideKundePrsnr>xxxxxx</ideKundePrsnr> > >> >> </TPForholdHendelse> > >> >> }] with destination: queue.samordning.TPForholdTilArbeidskoe > >> >> > >> >> 17:11:20,860 ERROR [STDERR] 17.jun.2009 17:11:20 > >> >> org.apache.camel.processor.Logger log > >> >> SEVERE: Failed delivery for exchangeId: > >> >> ID-vmutvjee1-b58/3030-1245251235079/0-0. Handled by the failure > >> >> processor: > >> >> Trace > >> >> Interceptor[To[ref:tpforholdArbeidskoe]] > >> >> > >> >> 17:11:20,875 ERROR [STDERR] 17.jun.2009 17:11:20 > >> >> org.apache.camel.processor.Logger process > >> >> INFO: ID-vmutvjee1-b58/3030-1245251235079/2-1 -> choice(), > >> Pattern:InOnly > >> >> , > >> >> Headers:{JMSTimestamp=1245251480860, org.apa > >> >> che.camel.MultiParameterArray=false, JMSType=, > >> >> org.apache.camel.RedeliveryCounter=0, JMSXGroupID=null, > >> JMSReplyTo=null, > >> >> JMSDestination=queue://queue.samordning.TPForholdTilArbeidskoe, > >> >> JMSRedelivered=false, JMSExpiration=0, org.apache.camel. > >> >> Redelivered=false, > >> >> JMSMessageID=ID:vmutvjee1-b58-3023-1245251233625-0:642:1:1:1, > >> >> JMSDeliveryMode=2, JMSCorrelationID=, J > >> >> MSPriority=4} , BodyType:null , Body:null > >> >> --------------------------------------------------- > >> >> > >> >> Anyone know the reason why we lose the message body? > >> >> > >> >> - Rune > >> >> > >> >> -- > >> >> View this message in context: > >> >> > >> > http://www.nabble.com/Message-body-lost-when-message-moved-by-exception-clause-tp24088536p24088536.html > >> >> Sent from the Camel - Users mailing list archive at Nabble.com. > >> >> > >> >> > >> > > >> > > >> > -- > >> > Claus Ibsen > >> > Apache Camel Committer > >> > > >> > Open Source Integration: http://fusesource.com > >> > Blog: http://davsclaus.blogspot.com/ > >> > Twitter: http://twitter.com/davsclaus > >> > > >> > > >> > >> -- > >> View this message in context: > >> > http://www.nabble.com/Message-body-lost-when-message-moved-by-exception-clause-tp24088536p24088903.html > >> Sent from the Camel - Users mailing list archive at Nabble.com. > >> > >> > > > > > > -- > > Claus Ibsen > > Apache Camel Committer > > > > Open Source Integration: http://fusesource.com > > Blog: http://davsclaus.blogspot.com/ > > Twitter: http://twitter.com/davsclaus > > > > > > -- > View this message in context: > http://www.nabble.com/Message-body-lost-when-message-moved-by-exception-clause-tp24088536p24092993.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus