Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-20097

DataMapper is unable to find element in json array from http connector

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Blocker Blocker
    • fuse-7.11.1-GA
    • None
    • Fuse Online
    • None
    • False
    • None
    • False
    • % %
    • Todo
    • Very Likely

      I have http endpoint with json array like:

      [{"key1": "value1"},{"key2": "value2"},{"key3": "value3"},{"key4": "value4"},{"key5": "value5"},{"key6": "value6"},{"key7": "value7"},{"key8": "value8"},{"key9": "value9"},{"key10": "value10"}]
      

      and then, I have an integration which consuming from this http, split step splits the data and data mapper mapps value on value in insert db steps.

      This integration works on previous CR build (AR21) but it doesn't work in current build (AR22).

      AR21:

       Syndesis version:  1.14.0.fuse-7_11_1-00011-redhat-00001
      
      Data mapper version:
      UI Version: 2.3.19
      Runtime Version: 2.3.18.fuse-7_11_1-00008-redhat-00001
      

      AR22:

      Syndesis version:  1.14.0.fuse-7_11_1-00012-redhat-00001
      
      Data mapper version:
      UI Version: 2.3.19
      Runtime Version: 2.3.19.fuse-7_11_1-00001-redhat-00001
      

      Both integrations and error logs are in the attachments. ( both are working on AR21 and both have the same error on AR22)

      There is an error in the log:

      org.apache.camel.RuntimeExchangeException: Cannot find key [task] in message body or headers to use when setting named parameter in query [INSERT INTO TODO (task, completed) VALUES (:?task, 0)] on the exchange: Exchange[i-NFDSxsQZfz9n5Eql2jlz]
      	at org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy$PopulateIterator.next(DefaultSqlPrepareStatementStrategy.java:355)
      	at org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.populateStatement(DefaultSqlPrepareStatementStrategy.java:180)
      	at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:146)
      	at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:116)
      	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)
      	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:685)
      	at org.apache.camel.component.sql.SqlProducer.process(SqlProducer.java:116)
      	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
      	at io.syndesis.integration.component.proxy.ComponentProxyProducer.process(ComponentProxyProducer.java:44)
      	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:148)
      	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:110)
      	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
      	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:110)
      	at io.syndesis.integration.runtime.tracing.TracingInterceptStrategy$EventProcessor.process(TracingInterceptStrategy.java:80)
      	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:110)
      	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
      	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
      	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:715)
      	at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:638)
      	at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:248)
      	at org.apache.camel.processor.Splitter.process(Splitter.java:131)
      	at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:110)
      	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
      	at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:197)
      	at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:79)
      	at java.util.TimerThread.mainLoop(Timer.java:555)
      	at java.util.TimerThread.run(Timer.java:505)
      

            Unassigned Unassigned
            mkralik@redhat.com Matej Kralik
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: