Sahil Sachdeva created CAMEL-15489:
--------------------------------------

             Summary: Camel 3.4 Persistence Aggregator not compatible with 
Oracle-Java Data Type 
                 Key: CAMEL-15489
                 URL: https://issues.apache.org/jira/browse/CAMEL-15489
             Project: Camel
          Issue Type: Bug
          Components: camel-sql
    Affects Versions: 3.4.3
            Reporter: Sahil Sachdeva
             Fix For: 3.5.0


Camel-sql : JdbcAggregationRepository uses the underlying jdbcTemplate and 
calls the queryForMap operation and on the VERSION column it type case it to 
the LONG by Default without checking if the Java Data Type is different or not. 
With Oracle and Java, it get bbvy default converted into the BIGDECIMAL and 
hence type case doesnt work with Object, can only work with Primitive data 
types. 

 

Exception Stacktrace: 

 

java.lang.ClassCastException: java.math.BigDecimal cannot be cast to 
java.lang.Longjava.lang.ClassCastException: java.math.BigDecimal cannot be cast 
to java.lang.Long at 
org.apache.camel.processor.aggregate.jdbc.JdbcAggregationRepository$4.doInTransaction(JdbcAggregationRepository.java:334)
 at 
org.apache.camel.processor.aggregate.jdbc.JdbcAggregationRepository$4.doInTransaction(JdbcAggregationRepository.java:325)
 at 
org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
 at 
org.apache.camel.processor.aggregate.jdbc.JdbcAggregationRepository.get(JdbcAggregationRepository.java:325)
 at 
org.apache.camel.processor.aggregate.jdbc.JdbcAggregationRepository.get(JdbcAggregationRepository.java:319)
 at 
org.apache.camel.processor.aggregate.AggregateProcessor.doAggregation(AggregateProcessor.java:483)
 at 
org.apache.camel.processor.aggregate.AggregateProcessor.doProcess(AggregateProcessor.java:406)
 at 
org.apache.camel.processor.aggregate.AggregateProcessor.doInOptimisticLock(AggregateProcessor.java:372)
 at 
org.apache.camel.processor.aggregate.AggregateProcessor.doProcess(AggregateProcessor.java:362)
 at 
org.apache.camel.processor.aggregate.AggregateProcessor.process(AggregateProcessor.java:320)
 at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:702)
 at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:616)
 at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
 at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
 at org.apache.camel.processor.Pipeline.process(Pipeline.java:147) at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)
 at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
 at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
 at 
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:128)
 at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
 at 
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
 at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
 at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318)
 at 
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:257)
 at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1189)
 at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1179)
 at 
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1076)
 at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
at java.lang.Thread.run(Thread.java:748)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to