You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2020/09/03 04:24:00 UTC

[jira] [Resolved] (CAMEL-15489) camel-sql - Persistence Aggregator not compatible with Oracle-Java Data Type

     [ https://issues.apache.org/jira/browse/CAMEL-15489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Claus Ibsen resolved CAMEL-15489.
---------------------------------
    Resolution: Fixed

Thanks for reporting and the PR

> camel-sql - 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
>            Priority: Major
>              Labels: help-wanted
>             Fix For: 3.4.4, 3.6.0
>
>         Attachments: Code Snippet.png
>
>
> 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)