You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by tide08 <sa...@yahoo.com> on 2009/11/24 00:26:12 UTC
DataSet header {CamelDataSetIndex=0} causes failure
I have soak test with following route and it seems to fail with following
error. I am using camel 2.1-SNAPSHOT.
I am not sure why that happens -
<route>
<from uri="dataset:messageDataSet?produceDelay=10"/>
<to uri="proxySender" />
</route>
<route>
<from uri="activemq:testQueue"/>
<to uri="dataset:messageDataSet?produceDelay=10"/>
</route>
ProxySender instead is just a custom processor which uses camelTemplate and
camel-jms to send message to "activemq:testQueue" on a standalone broker.
I tried using the proxySender without using DataSet and it seems to work
just fine. But when used with DataSet it seems to fail while storing message
(ActiveMQObjectMessage.storeContent() ) - DataSet header
{CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
Any ideas on what may be wrong?
Thread Stack:
Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
ActiveMQObjectMessage.storeContent() line: 104
ActiveMQObjectMessage.setObject(Serializable) line: 155
ActiveMQSession.createObjectMessage(Serializable) line: 325
PooledSession.createObjectMessage(Serializable) line: 149
JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>, Session,
CamelContext) line: 489
JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception) line: 277
JmsProducer$2.createMessage(Session) line: 316
JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
Destination, MessageCreator, JmsConfiguration$MessageSentCallback, Session)
line: 164
JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
boolean) line: 471
JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator) line: 195
JmsProducer.doSend(boolean, String, Destination, MessageCreator,
DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
JmsProducer.processInOnly(Exchange) line: 320
JmsProducer.process(Exchange) line: 150
ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line: 179
ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line: 161
ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
ProducerCallback<T>) line: 146
ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor, Exchange)
line: 160
ProducerCache.send(Endpoint, Processor) line: 98
DefaultProducerTemplate.send(Endpoint, Processor) line: 97
DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
Map<String,Object>) line: 206
DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
Map<String,Object>) line: 202
JmsMessageServiceImpl.send(Message...) line: 60
ProxySendProcessor.process(Exchange) line: 17
ProcessorEndpoint.onExchange(Exchange) line: 95
ProcessorEndpoint$1.process(Exchange) line: 65
SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line: 97
SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line: 95
ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
ProducerCallback<T>) line: 146
SendProcessor.doProcess(Exchange) line: 94
SendProcessor.process(Exchange) line: 82
InstrumentationProcessor.process(Exchange) line: 67
TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
TraceInterceptor.process(Exchange) line: 93
InstrumentationProcessor.process(Exchange) line: 67
DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange) line:
223
DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
RedeliveryErrorHandler$RedeliveryData) line: 153
DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange) line: 91
DefaultErrorHandler.process(Exchange) line: 49
DefaultChannel.process(Exchange) line: 206
UnitOfWorkProcessor.processNext(Exchange) line: 54
UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
InstrumentationProcessor.process(Exchange) line: 67
DataSetConsumer.sendMessages(long, long) line: 70
DataSetConsumer$1.run() line: 61
Executors$RunnableAdapter<T>.call() line: 441
FutureTask$Sync.innerRun() line: 303
ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
line: 138
ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
line: 98
ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
ThreadPoolExecutor$Worker.run() line: 908
Thread.run() line: 637
Error StackTrace:
[java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
java.util.HashSet.writeObject(HashSet.java:267),
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
java.lang.reflect.Method.invoke(Method.java:597),
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
java.util.concurrent.FutureTask.run(FutureTask.java:138),
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
java.lang.Thread.run(Thread.java:637)]
--
View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26487985.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DataSet header {CamelDataSetIndex=0} causes failure
Posted by Claus Ibsen <cl...@gmail.com>.
On Wed, Nov 25, 2009 at 6:16 AM, tide08 <sa...@yahoo.com> wrote:
>
> @Claus
>
> Patch seems to work fine, I got my soak test working, Thanks!
>
Great news and glad we got that fixed before 2.1 is being build.
>
> Claus Ibsen-2 wrote:
>>
>> Hi
>>
>> Thanks a lot for your findings.
>>
>> I have created a ticket
>> https://issues.apache.org/activemq/browse/CAMEL-2215
>>
>> And will commit a fix in short time.
>> Feel free to try with latest code.
>>
>>
>> On Tue, Nov 24, 2009 at 1:54 AM, tide08 <sa...@yahoo.com> wrote:
>>>
>>> So looks like CaseInsensitiveMap is not serializable :(
>>>
>>> Map.Entry is non-serializable and so java.util.HashMap defines those as
>>> transient so that serialization of that member does not happen. So
>>> CaseInsenstiveMap should also define its member "entrySetView" as
>>> transient
>>> or if it needs to be serialized CaseInsenstiveMap should implement
>>> writeObject()/readObject().
>>>
>>> Here is the unit test which fails on serialization:
>>>
>>> @Test
>>> public void testInsensitiveMapSerialization() throws IOException,
>>> ClassNotFoundException {
>>> CaseInsensitiveMap testMap = new CaseInsensitiveMap();
>>> testMap.put("key", "value");
>>> testMap.entrySet();
>>>
>>> ByteArrayOutputStream bStream = new ByteArrayOutputStream();
>>>
>>> ObjectOutputStream objStream = new ObjectOutputStream(bStream);
>>> objStream.writeObject(testMap);
>>>
>>> ObjectInputStream inStream = new ObjectInputStream(new
>>> ByteArrayInputStream(bStream.toByteArray()));
>>> CaseInsensitiveMap testMapCopy = (CaseInsensitiveMap)
>>> inStream.readObject();
>>>
>>> Assert.assertTrue(testMapCopy.containsKey("key"));
>>> }
>>>
>>>
>>>
>>> tide08 wrote:
>>>>
>>>> I have soak test with following route and it seems to fail with
>>>> following
>>>> error. I am using camel 2.1-SNAPSHOT.
>>>>
>>>> I am not sure why that happens -
>>>>
>>>> <route>
>>>> <from uri="dataset:messageDataSet?produceDelay=10"/>
>>>> <to uri="proxySender" />
>>>> </route>
>>>> <route>
>>>> <from uri="activemq:testQueue"/>
>>>> <to uri="dataset:messageDataSet?produceDelay=10"/>
>>>> </route>
>>>>
>>>> ProxySender instead is just a custom processor which uses camelTemplate
>>>> and camel-jms to send message to "activemq:testQueue" on a standalone
>>>> broker.
>>>>
>>>> I tried using the proxySender without using DataSet and it seems to work
>>>> just fine. But when used with DataSet it seems to fail while storing
>>>> message (ActiveMQObjectMessage.storeContent() ) - DataSet header
>>>> {CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
>>>>
>>>> Any ideas on what may be wrong?
>>>>
>>>> Thread Stack:
>>>>
>>>> Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
>>>> ActiveMQObjectMessage.storeContent() line: 104
>>>> ActiveMQObjectMessage.setObject(Serializable) line: 155
>>>> ActiveMQSession.createObjectMessage(Serializable) line: 325
>>>> PooledSession.createObjectMessage(Serializable) line: 149
>>>> JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>,
>>>> Session, CamelContext) line: 489
>>>> JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception)
>>>> line:
>>>> 277
>>>> JmsProducer$2.createMessage(Session) line: 316
>>>> JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
>>>> MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
>>>>
>>>> JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
>>>> Destination, MessageCreator, JmsConfiguration$MessageSentCallback,
>>>> Session) line: 164
>>>> JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
>>>>
>>>> JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
>>>> boolean) line: 471
>>>> JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator)
>>>> line: 195
>>>> JmsProducer.doSend(boolean, String, Destination, MessageCreator,
>>>> DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
>>>> JmsProducer.processInOnly(Exchange) line: 320
>>>> JmsProducer.process(Exchange) line: 150
>>>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern)
>>>> line:
>>>> 179
>>>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern)
>>>> line:
>>>> 161
>>>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>>>> ProducerCallback<T>) line: 146
>>>> ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor,
>>>> Exchange) line: 160
>>>> ProducerCache.send(Endpoint, Processor) line: 98
>>>> DefaultProducerTemplate.send(Endpoint, Processor) line: 97
>>>> DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
>>>> Map<String,Object>) line: 206
>>>> DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
>>>> Map<String,Object>) line: 202
>>>> JmsMessageServiceImpl.send(Message...) line: 60
>>>> ProxySendProcessor.process(Exchange) line: 17
>>>> ProcessorEndpoint.onExchange(Exchange) line: 95
>>>> ProcessorEndpoint$1.process(Exchange) line: 65
>>>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern)
>>>> line:
>>>> 97
>>>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern)
>>>> line:
>>>> 95
>>>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>>>> ProducerCallback<T>) line: 146
>>>> SendProcessor.doProcess(Exchange) line: 94
>>>> SendProcessor.process(Exchange) line: 82
>>>> InstrumentationProcessor.process(Exchange) line: 67
>>>> TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
>>>> TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
>>>> TraceInterceptor.process(Exchange) line: 93
>>>> InstrumentationProcessor.process(Exchange) line: 67
>>>>
>>>> DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange)
>>>> line: 223
>>>>
>>>> DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
>>>> RedeliveryErrorHandler$RedeliveryData) line: 153
>>>> DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange)
>>>> line: 91
>>>> DefaultErrorHandler.process(Exchange) line: 49
>>>> DefaultChannel.process(Exchange) line: 206
>>>> UnitOfWorkProcessor.processNext(Exchange) line: 54
>>>> UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
>>>> InstrumentationProcessor.process(Exchange) line: 67
>>>> DataSetConsumer.sendMessages(long, long) line: 70
>>>> DataSetConsumer$1.run() line: 61
>>>> Executors$RunnableAdapter<T>.call() line: 441
>>>> FutureTask$Sync.innerRun() line: 303
>>>>
>>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
>>>> line: 138
>>>>
>>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
>>>> line: 98
>>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
>>>> ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
>>>> ThreadPoolExecutor$Worker.run() line: 908
>>>> Thread.run() line: 637
>>>>
>>>>
>>>> Error StackTrace:
>>>>
>>>> [java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
>>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>>>> java.util.HashSet.writeObject(HashSet.java:267),
>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
>>>> java.lang.reflect.Method.invoke(Method.java:597),
>>>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>>>> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
>>>> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
>>>> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
>>>> org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
>>>> org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
>>>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
>>>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
>>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
>>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
>>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
>>>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
>>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
>>>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
>>>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
>>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
>>>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
>>>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
>>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>>>> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
>>>> org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
>>>> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
>>>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
>>>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
>>>> com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
>>>> com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
>>>> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
>>>> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
>>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
>>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
>>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
>>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
>>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
>>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
>>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
>>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>>> org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
>>>> org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
>>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
>>>> java.util.concurrent.FutureTask.run(FutureTask.java:138),
>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
>>>> java.lang.Thread.run(Thread.java:637)]
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26488848.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26507672.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Re: DataSet header {CamelDataSetIndex=0} causes failure
Posted by tide08 <sa...@yahoo.com>.
@Claus
Patch seems to work fine, I got my soak test working, Thanks!
Claus Ibsen-2 wrote:
>
> Hi
>
> Thanks a lot for your findings.
>
> I have created a ticket
> https://issues.apache.org/activemq/browse/CAMEL-2215
>
> And will commit a fix in short time.
> Feel free to try with latest code.
>
>
> On Tue, Nov 24, 2009 at 1:54 AM, tide08 <sa...@yahoo.com> wrote:
>>
>> So looks like CaseInsensitiveMap is not serializable :(
>>
>> Map.Entry is non-serializable and so java.util.HashMap defines those as
>> transient so that serialization of that member does not happen. So
>> CaseInsenstiveMap should also define its member "entrySetView" as
>> transient
>> or if it needs to be serialized CaseInsenstiveMap should implement
>> writeObject()/readObject().
>>
>> Here is the unit test which fails on serialization:
>>
>> @Test
>> public void testInsensitiveMapSerialization() throws IOException,
>> ClassNotFoundException {
>> CaseInsensitiveMap testMap = new CaseInsensitiveMap();
>> testMap.put("key", "value");
>> testMap.entrySet();
>>
>> ByteArrayOutputStream bStream = new ByteArrayOutputStream();
>>
>> ObjectOutputStream objStream = new ObjectOutputStream(bStream);
>> objStream.writeObject(testMap);
>>
>> ObjectInputStream inStream = new ObjectInputStream(new
>> ByteArrayInputStream(bStream.toByteArray()));
>> CaseInsensitiveMap testMapCopy = (CaseInsensitiveMap)
>> inStream.readObject();
>>
>> Assert.assertTrue(testMapCopy.containsKey("key"));
>> }
>>
>>
>>
>> tide08 wrote:
>>>
>>> I have soak test with following route and it seems to fail with
>>> following
>>> error. I am using camel 2.1-SNAPSHOT.
>>>
>>> I am not sure why that happens -
>>>
>>> <route>
>>> <from uri="dataset:messageDataSet?produceDelay=10"/>
>>> <to uri="proxySender" />
>>> </route>
>>> <route>
>>> <from uri="activemq:testQueue"/>
>>> <to uri="dataset:messageDataSet?produceDelay=10"/>
>>> </route>
>>>
>>> ProxySender instead is just a custom processor which uses camelTemplate
>>> and camel-jms to send message to "activemq:testQueue" on a standalone
>>> broker.
>>>
>>> I tried using the proxySender without using DataSet and it seems to work
>>> just fine. But when used with DataSet it seems to fail while storing
>>> message (ActiveMQObjectMessage.storeContent() ) - DataSet header
>>> {CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
>>>
>>> Any ideas on what may be wrong?
>>>
>>> Thread Stack:
>>>
>>> Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
>>> ActiveMQObjectMessage.storeContent() line: 104
>>> ActiveMQObjectMessage.setObject(Serializable) line: 155
>>> ActiveMQSession.createObjectMessage(Serializable) line: 325
>>> PooledSession.createObjectMessage(Serializable) line: 149
>>> JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>,
>>> Session, CamelContext) line: 489
>>> JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception)
>>> line:
>>> 277
>>> JmsProducer$2.createMessage(Session) line: 316
>>> JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
>>> MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
>>>
>>> JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
>>> Destination, MessageCreator, JmsConfiguration$MessageSentCallback,
>>> Session) line: 164
>>> JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
>>>
>>> JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
>>> boolean) line: 471
>>> JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator)
>>> line: 195
>>> JmsProducer.doSend(boolean, String, Destination, MessageCreator,
>>> DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
>>> JmsProducer.processInOnly(Exchange) line: 320
>>> JmsProducer.process(Exchange) line: 150
>>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern)
>>> line:
>>> 179
>>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern)
>>> line:
>>> 161
>>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>>> ProducerCallback<T>) line: 146
>>> ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor,
>>> Exchange) line: 160
>>> ProducerCache.send(Endpoint, Processor) line: 98
>>> DefaultProducerTemplate.send(Endpoint, Processor) line: 97
>>> DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
>>> Map<String,Object>) line: 206
>>> DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
>>> Map<String,Object>) line: 202
>>> JmsMessageServiceImpl.send(Message...) line: 60
>>> ProxySendProcessor.process(Exchange) line: 17
>>> ProcessorEndpoint.onExchange(Exchange) line: 95
>>> ProcessorEndpoint$1.process(Exchange) line: 65
>>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern)
>>> line:
>>> 97
>>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern)
>>> line:
>>> 95
>>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>>> ProducerCallback<T>) line: 146
>>> SendProcessor.doProcess(Exchange) line: 94
>>> SendProcessor.process(Exchange) line: 82
>>> InstrumentationProcessor.process(Exchange) line: 67
>>> TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
>>> TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
>>> TraceInterceptor.process(Exchange) line: 93
>>> InstrumentationProcessor.process(Exchange) line: 67
>>>
>>> DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange)
>>> line: 223
>>>
>>> DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
>>> RedeliveryErrorHandler$RedeliveryData) line: 153
>>> DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange)
>>> line: 91
>>> DefaultErrorHandler.process(Exchange) line: 49
>>> DefaultChannel.process(Exchange) line: 206
>>> UnitOfWorkProcessor.processNext(Exchange) line: 54
>>> UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
>>> InstrumentationProcessor.process(Exchange) line: 67
>>> DataSetConsumer.sendMessages(long, long) line: 70
>>> DataSetConsumer$1.run() line: 61
>>> Executors$RunnableAdapter<T>.call() line: 441
>>> FutureTask$Sync.innerRun() line: 303
>>>
>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
>>> line: 138
>>>
>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
>>> line: 98
>>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
>>> ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
>>> ThreadPoolExecutor$Worker.run() line: 908
>>> Thread.run() line: 637
>>>
>>>
>>> Error StackTrace:
>>>
>>> [java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>>> java.util.HashSet.writeObject(HashSet.java:267),
>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
>>> java.lang.reflect.Method.invoke(Method.java:597),
>>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>>> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
>>> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
>>> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
>>> org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
>>> org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
>>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
>>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
>>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
>>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
>>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
>>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
>>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
>>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
>>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>>> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
>>> org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
>>> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
>>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
>>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
>>> com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
>>> com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
>>> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
>>> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
>>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
>>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
>>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
>>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
>>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
>>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
>>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>>> org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
>>> org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
>>> java.util.concurrent.FutureTask.run(FutureTask.java:138),
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
>>> java.lang.Thread.run(Thread.java:637)]
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26488848.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>
>
--
View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26507672.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DataSet header {CamelDataSetIndex=0} causes failure
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Thanks a lot for your findings.
I have created a ticket
https://issues.apache.org/activemq/browse/CAMEL-2215
And will commit a fix in short time.
Feel free to try with latest code.
On Tue, Nov 24, 2009 at 1:54 AM, tide08 <sa...@yahoo.com> wrote:
>
> So looks like CaseInsensitiveMap is not serializable :(
>
> Map.Entry is non-serializable and so java.util.HashMap defines those as
> transient so that serialization of that member does not happen. So
> CaseInsenstiveMap should also define its member "entrySetView" as transient
> or if it needs to be serialized CaseInsenstiveMap should implement
> writeObject()/readObject().
>
> Here is the unit test which fails on serialization:
>
> @Test
> public void testInsensitiveMapSerialization() throws IOException,
> ClassNotFoundException {
> CaseInsensitiveMap testMap = new CaseInsensitiveMap();
> testMap.put("key", "value");
> testMap.entrySet();
>
> ByteArrayOutputStream bStream = new ByteArrayOutputStream();
>
> ObjectOutputStream objStream = new ObjectOutputStream(bStream);
> objStream.writeObject(testMap);
>
> ObjectInputStream inStream = new ObjectInputStream(new
> ByteArrayInputStream(bStream.toByteArray()));
> CaseInsensitiveMap testMapCopy = (CaseInsensitiveMap)
> inStream.readObject();
>
> Assert.assertTrue(testMapCopy.containsKey("key"));
> }
>
>
>
> tide08 wrote:
>>
>> I have soak test with following route and it seems to fail with following
>> error. I am using camel 2.1-SNAPSHOT.
>>
>> I am not sure why that happens -
>>
>> <route>
>> <from uri="dataset:messageDataSet?produceDelay=10"/>
>> <to uri="proxySender" />
>> </route>
>> <route>
>> <from uri="activemq:testQueue"/>
>> <to uri="dataset:messageDataSet?produceDelay=10"/>
>> </route>
>>
>> ProxySender instead is just a custom processor which uses camelTemplate
>> and camel-jms to send message to "activemq:testQueue" on a standalone
>> broker.
>>
>> I tried using the proxySender without using DataSet and it seems to work
>> just fine. But when used with DataSet it seems to fail while storing
>> message (ActiveMQObjectMessage.storeContent() ) - DataSet header
>> {CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
>>
>> Any ideas on what may be wrong?
>>
>> Thread Stack:
>>
>> Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
>> ActiveMQObjectMessage.storeContent() line: 104
>> ActiveMQObjectMessage.setObject(Serializable) line: 155
>> ActiveMQSession.createObjectMessage(Serializable) line: 325
>> PooledSession.createObjectMessage(Serializable) line: 149
>> JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>,
>> Session, CamelContext) line: 489
>> JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception) line:
>> 277
>> JmsProducer$2.createMessage(Session) line: 316
>> JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
>> MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
>>
>> JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
>> Destination, MessageCreator, JmsConfiguration$MessageSentCallback,
>> Session) line: 164
>> JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
>> JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
>> boolean) line: 471
>> JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator) line: 195
>> JmsProducer.doSend(boolean, String, Destination, MessageCreator,
>> DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
>> JmsProducer.processInOnly(Exchange) line: 320
>> JmsProducer.process(Exchange) line: 150
>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
>> 179
>> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
>> 161
>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>> ProducerCallback<T>) line: 146
>> ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor,
>> Exchange) line: 160
>> ProducerCache.send(Endpoint, Processor) line: 98
>> DefaultProducerTemplate.send(Endpoint, Processor) line: 97
>> DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
>> Map<String,Object>) line: 206
>> DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
>> Map<String,Object>) line: 202
>> JmsMessageServiceImpl.send(Message...) line: 60
>> ProxySendProcessor.process(Exchange) line: 17
>> ProcessorEndpoint.onExchange(Exchange) line: 95
>> ProcessorEndpoint$1.process(Exchange) line: 65
>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
>> 97
>> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
>> 95
>> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
>> ProducerCallback<T>) line: 146
>> SendProcessor.doProcess(Exchange) line: 94
>> SendProcessor.process(Exchange) line: 82
>> InstrumentationProcessor.process(Exchange) line: 67
>> TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
>> TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
>> TraceInterceptor.process(Exchange) line: 93
>> InstrumentationProcessor.process(Exchange) line: 67
>> DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange)
>> line: 223
>> DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
>> RedeliveryErrorHandler$RedeliveryData) line: 153
>> DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange) line: 91
>> DefaultErrorHandler.process(Exchange) line: 49
>> DefaultChannel.process(Exchange) line: 206
>> UnitOfWorkProcessor.processNext(Exchange) line: 54
>> UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
>> InstrumentationProcessor.process(Exchange) line: 67
>> DataSetConsumer.sendMessages(long, long) line: 70
>> DataSetConsumer$1.run() line: 61
>> Executors$RunnableAdapter<T>.call() line: 441
>> FutureTask$Sync.innerRun() line: 303
>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
>> line: 138
>>
>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
>> line: 98
>> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
>> ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
>> ThreadPoolExecutor$Worker.run() line: 908
>> Thread.run() line: 637
>>
>>
>> Error StackTrace:
>>
>> [java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>> java.util.HashSet.writeObject(HashSet.java:267),
>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
>> java.lang.reflect.Method.invoke(Method.java:597),
>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
>> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
>> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
>> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
>> org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
>> org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
>> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
>> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
>> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
>> org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
>> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
>> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
>> com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
>> com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
>> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
>> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
>> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
>> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
>> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
>> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
>> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
>> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
>> org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
>> org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
>> java.util.concurrent.FutureTask.run(FutureTask.java:138),
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
>> java.lang.Thread.run(Thread.java:637)]
>>
>
> --
> View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26488848.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Re: DataSet header {CamelDataSetIndex=0} causes failure
Posted by tide08 <sa...@yahoo.com>.
So looks like CaseInsensitiveMap is not serializable :(
Map.Entry is non-serializable and so java.util.HashMap defines those as
transient so that serialization of that member does not happen. So
CaseInsenstiveMap should also define its member "entrySetView" as transient
or if it needs to be serialized CaseInsenstiveMap should implement
writeObject()/readObject().
Here is the unit test which fails on serialization:
@Test
public void testInsensitiveMapSerialization() throws IOException,
ClassNotFoundException {
CaseInsensitiveMap testMap = new CaseInsensitiveMap();
testMap.put("key", "value");
testMap.entrySet();
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
ObjectOutputStream objStream = new ObjectOutputStream(bStream);
objStream.writeObject(testMap);
ObjectInputStream inStream = new ObjectInputStream(new
ByteArrayInputStream(bStream.toByteArray()));
CaseInsensitiveMap testMapCopy = (CaseInsensitiveMap)
inStream.readObject();
Assert.assertTrue(testMapCopy.containsKey("key"));
}
tide08 wrote:
>
> I have soak test with following route and it seems to fail with following
> error. I am using camel 2.1-SNAPSHOT.
>
> I am not sure why that happens -
>
> <route>
> <from uri="dataset:messageDataSet?produceDelay=10"/>
> <to uri="proxySender" />
> </route>
> <route>
> <from uri="activemq:testQueue"/>
> <to uri="dataset:messageDataSet?produceDelay=10"/>
> </route>
>
> ProxySender instead is just a custom processor which uses camelTemplate
> and camel-jms to send message to "activemq:testQueue" on a standalone
> broker.
>
> I tried using the proxySender without using DataSet and it seems to work
> just fine. But when used with DataSet it seems to fail while storing
> message (ActiveMQObjectMessage.storeContent() ) - DataSet header
> {CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
>
> Any ideas on what may be wrong?
>
> Thread Stack:
>
> Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
> ActiveMQObjectMessage.storeContent() line: 104
> ActiveMQObjectMessage.setObject(Serializable) line: 155
> ActiveMQSession.createObjectMessage(Serializable) line: 325
> PooledSession.createObjectMessage(Serializable) line: 149
> JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>,
> Session, CamelContext) line: 489
> JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception) line:
> 277
> JmsProducer$2.createMessage(Session) line: 316
> JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
> MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
>
> JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
> Destination, MessageCreator, JmsConfiguration$MessageSentCallback,
> Session) line: 164
> JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
> JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
> boolean) line: 471
> JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator) line: 195
> JmsProducer.doSend(boolean, String, Destination, MessageCreator,
> DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
> JmsProducer.processInOnly(Exchange) line: 320
> JmsProducer.process(Exchange) line: 150
> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 179
> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 161
> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
> ProducerCallback<T>) line: 146
> ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor,
> Exchange) line: 160
> ProducerCache.send(Endpoint, Processor) line: 98
> DefaultProducerTemplate.send(Endpoint, Processor) line: 97
> DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
> Map<String,Object>) line: 206
> DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
> Map<String,Object>) line: 202
> JmsMessageServiceImpl.send(Message...) line: 60
> ProxySendProcessor.process(Exchange) line: 17
> ProcessorEndpoint.onExchange(Exchange) line: 95
> ProcessorEndpoint$1.process(Exchange) line: 65
> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 97
> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 95
> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
> ProducerCallback<T>) line: 146
> SendProcessor.doProcess(Exchange) line: 94
> SendProcessor.process(Exchange) line: 82
> InstrumentationProcessor.process(Exchange) line: 67
> TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
> TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
> TraceInterceptor.process(Exchange) line: 93
> InstrumentationProcessor.process(Exchange) line: 67
> DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange)
> line: 223
> DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
> RedeliveryErrorHandler$RedeliveryData) line: 153
> DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange) line: 91
> DefaultErrorHandler.process(Exchange) line: 49
> DefaultChannel.process(Exchange) line: 206
> UnitOfWorkProcessor.processNext(Exchange) line: 54
> UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
> InstrumentationProcessor.process(Exchange) line: 67
> DataSetConsumer.sendMessages(long, long) line: 70
> DataSetConsumer$1.run() line: 61
> Executors$RunnableAdapter<T>.call() line: 441
> FutureTask$Sync.innerRun() line: 303
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
> line: 138
>
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
> line: 98
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
> ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
> ThreadPoolExecutor$Worker.run() line: 908
> Thread.run() line: 637
>
>
> Error StackTrace:
>
> [java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
> java.util.HashSet.writeObject(HashSet.java:267),
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
> java.lang.reflect.Method.invoke(Method.java:597),
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
> org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
> org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
> org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
> com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
> com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
> org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
> java.util.concurrent.FutureTask.run(FutureTask.java:138),
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
> java.lang.Thread.run(Thread.java:637)]
>
--
View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26488848.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DataSet header {CamelDataSetIndex=0} causes failure
Posted by tide08 <sa...@yahoo.com>.
Exception stack trace shows cause as -
java.io.NotSerializableException: org.apache.camel.util.CaseInsensitiveMap$1
tide08 wrote:
>
> I have soak test with following route and it seems to fail with following
> error. I am using camel 2.1-SNAPSHOT.
>
> I am not sure why that happens -
>
> <route>
> <from uri="dataset:messageDataSet?produceDelay=10"/>
> <to uri="proxySender" />
> </route>
> <route>
> <from uri="activemq:testQueue"/>
> <to uri="dataset:messageDataSet?produceDelay=10"/>
> </route>
>
> ProxySender instead is just a custom processor which uses camelTemplate
> and camel-jms to send message to "activemq:testQueue" on a standalone
> broker.
>
> I tried using the proxySender without using DataSet and it seems to work
> just fine. But when used with DataSet it seems to fail while storing
> message (ActiveMQObjectMessage.storeContent() ) - DataSet header
> {CamelDataSetIndex=0}. CaseInsensitiveMap fails to serialize?
>
> Any ideas on what may be wrong?
>
> Thread Stack:
>
> Daemon Thread [Camel thread 0: DataSetComponent] (Suspended)
> ActiveMQObjectMessage.storeContent() line: 104
> ActiveMQObjectMessage.setObject(Serializable) line: 155
> ActiveMQSession.createObjectMessage(Serializable) line: 325
> PooledSession.createObjectMessage(Serializable) line: 149
> JmsBinding.createJmsMessage(Exchange, Object, Map<String,Object>,
> Session, CamelContext) line: 489
> JmsBinding.makeJmsMessage(Exchange, Message, Session, Exception) line:
> 277
> JmsProducer$2.createMessage(Session) line: 316
> JmsConfiguration$CamelJmsTemplate.doSendToDestination(Destination,
> MessageCreator, JmsConfiguration$MessageSentCallback, Session) line: 221
>
> JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration$CamelJmsTemplate,
> Destination, MessageCreator, JmsConfiguration$MessageSentCallback,
> Session) line: 164
> JmsConfiguration$CamelJmsTemplate$3.doInJms(Session) line: 198
> JmsConfiguration$CamelJmsTemplate(JmsTemplate).execute(SessionCallback,
> boolean) line: 471
> JmsConfiguration$CamelJmsTemplate.send(String, MessageCreator) line: 195
> JmsProducer.doSend(boolean, String, Destination, MessageCreator,
> DeferredRequestReplyMap$DeferredMessageSentCallback) line: 375
> JmsProducer.processInOnly(Exchange) line: 320
> JmsProducer.process(Exchange) line: 150
> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 179
> ProducerCache$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 161
> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
> ProducerCallback<T>) line: 146
> ProducerCache.sendExchange(Endpoint, ExchangePattern, Processor,
> Exchange) line: 160
> ProducerCache.send(Endpoint, Processor) line: 98
> DefaultProducerTemplate.send(Endpoint, Processor) line: 97
> DefaultProducerTemplate.sendBodyAndHeaders(Endpoint, Object,
> Map<String,Object>) line: 206
> DefaultProducerTemplate.sendBodyAndHeaders(String, Object,
> Map<String,Object>) line: 202
> JmsMessageServiceImpl.send(Message...) line: 60
> ProxySendProcessor.process(Exchange) line: 17
> ProcessorEndpoint.onExchange(Exchange) line: 95
> ProcessorEndpoint$1.process(Exchange) line: 65
> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 97
> SendProcessor$1.doInProducer(Producer, Exchange, ExchangePattern) line:
> 95
> ProducerCache.doInProducer(Endpoint, Exchange, ExchangePattern,
> ProducerCallback<T>) line: 146
> SendProcessor.doProcess(Exchange) line: 94
> SendProcessor.process(Exchange) line: 82
> InstrumentationProcessor.process(Exchange) line: 67
> TraceInterceptor(DelegateProcessor).processNext(Exchange) line: 53
> TraceInterceptor(DelegateProcessor).proceed(Exchange) line: 82
> TraceInterceptor.process(Exchange) line: 93
> InstrumentationProcessor.process(Exchange) line: 67
> DefaultErrorHandler(RedeliveryErrorHandler).processExchange(Exchange)
> line: 223
> DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange,
> RedeliveryErrorHandler$RedeliveryData) line: 153
> DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange) line: 91
> DefaultErrorHandler.process(Exchange) line: 49
> DefaultChannel.process(Exchange) line: 206
> UnitOfWorkProcessor.processNext(Exchange) line: 54
> UnitOfWorkProcessor(DelegateProcessor).process(Exchange) line: 48
> InstrumentationProcessor.process(Exchange) line: 67
> DataSetConsumer.sendMessages(long, long) line: 70
> DataSetConsumer$1.run() line: 61
> Executors$RunnableAdapter<T>.call() line: 441
> FutureTask$Sync.innerRun() line: 303
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).run()
> line: 138
>
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$301(ScheduledThreadPoolExecutor$ScheduledFutureTask)
> line: 98
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 207
> ThreadPoolExecutor$Worker.runTask(Runnable) line: 886
> ThreadPoolExecutor$Worker.run() line: 908
> Thread.run() line: 637
>
>
> Error StackTrace:
>
> [java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156),
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
> java.util.HashSet.writeObject(HashSet.java:267),
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method),
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39),
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25),
> java.lang.reflect.Method.invoke(Method.java:597),
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509),
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474),
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392),
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150),
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326),
> org.apache.activemq.command.ActiveMQObjectMessage.storeContent(ActiveMQObjectMessage.java:98),
> org.apache.activemq.command.ActiveMQObjectMessage.setObject(ActiveMQObjectMessage.java:155),
> org.apache.activemq.ActiveMQSession.createObjectMessage(ActiveMQSession.java:325),
> org.apache.activemq.pool.PooledSession.createObjectMessage(PooledSession.java:149),
> org.apache.camel.component.jms.JmsBinding.createJmsMessage(JmsBinding.java:489),
> org.apache.camel.component.jms.JmsBinding.makeJmsMessage(JmsBinding.java:277),
> org.apache.camel.component.jms.JmsProducer$2.createMessage(JmsProducer.java:316),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.doSendToDestination(JmsConfiguration.java:221),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.access$100(JmsConfiguration.java:164),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate$3.doInJms(JmsConfiguration.java:198),
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:471),
> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:195),
> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:375),
> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:320),
> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:150),
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:179),
> org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:161),
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
> org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:160),
> org.apache.camel.impl.ProducerCache.send(ProducerCache.java:98),
> org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:97),
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:206),
> org.apache.camel.impl.DefaultProducerTemplate.sendBodyAndHeaders(DefaultProducerTemplate.java:202),
> com.citrix.message.service.jms.JmsMessageServiceImpl.send(JmsMessageServiceImpl.java:60),
> com.citrix.message.ProxySendProcessor.process(ProxySendProcessor.java:17),
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:95),
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:65),
> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97),
> org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95),
> org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146),
> org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94),
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53),
> org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82),
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:93),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:223),
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:153),
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:91),
> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49),
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206),
> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54),
> org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48),
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67),
> org.apache.camel.component.dataset.DataSetConsumer.sendMessages(DataSetConsumer.java:70),
> org.apache.camel.component.dataset.DataSetConsumer$1.run(DataSetConsumer.java:61),
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441),
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
> java.util.concurrent.FutureTask.run(FutureTask.java:138),
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
> java.lang.Thread.run(Thread.java:637)]
>
--
View this message in context: http://old.nabble.com/DataSet-header-%7BCamelDataSetIndex%3D0%7D-causes-failure-tp26487985p26488048.html
Sent from the Camel - Users mailing list archive at Nabble.com.