Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-7730

URI option "command" is not working in camel-infinispan component

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.13.2
    • Fix Version/s: 2.13.3, 2.14.0
    • Component/s: None
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      Documentation for the component states that "command" URI option can be used in producer for setting operations for infinispan. But is seems only the default value is working because commands REMOVE, CLEAR and GET fail with NullPointerException:

      Message History
      ---------------------------------------------------------------------------------------------------------------------------------------
      RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
      [route7            ] [route7            ] [direct://commandGet                                                           ] [         3]
      [route7            ] [setHeader11       ] [setHeader[CamelInfinispanKey]                                                 ] [         0]
      [route7            ] [to7               ] [infinispan://localhost?cacheContainer=#container1&command=GET                 ] [         1]
      
      Exchange
      ---------------------------------------------------------------------------------------------------------------------------------------
      Exchange[
      	Id                  ID-roman-ThinkPad-T430s-46536-1408612528972-0-4
      	ExchangePattern     InOnly
      	Headers             {breadcrumbId=ID-roman-ThinkPad-T430s-46536-1408612528972-0-3, CamelInfinispanKey=commandKey1, CamelRedelivered=false, CamelRedeliveryCounter=0}
      	BodyType            null
      	Body                [Body is null]
      ]
      
      Stacktrace
      ---------------------------------------------------------------------------------------------------------------------------------------
      java.lang.NullPointerException: Null values are not supported!
      	at org.infinispan.CacheImpl.assertKeyValueNotNull(CacheImpl.java:187)
      	at org.infinispan.CacheImpl.putInternal(CacheImpl.java:876)
      	at org.infinispan.CacheImpl.put(CacheImpl.java:870)
      	at org.infinispan.CacheImpl.put(CacheImpl.java:1351)
      	at org.infinispan.CacheImpl.put(CacheImpl.java:215)
      	at org.apache.camel.component.infinispan.InfinispanOperation$Operation$1.execute(InfinispanOperation.java:50)
      	at org.apache.camel.component.infinispan.InfinispanOperation.process(InfinispanOperation.java:34)
      	at org.apache.camel.component.infinispan.InfinispanProducer.process(InfinispanProducer.java:42)
      	at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
      	at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)
      	at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
      	at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
      	at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:51)
      	at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
      	at org.apache.camel.processor.UnitOfWorkProducer.process(UnitOfWorkProducer.java:73)
      	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:378)
      	at org.apache.camel.impl.ProducerCache$2.doInProducer(ProducerCache.java:346)
      	at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:242)
      	at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:346)
      	at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:184)
      	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:124)
      	at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:110)
      	at org.jboss.fuse.qa.infinispan.component.test.InfinispanComponentTest.testUriCommandOption(InfinispanComponentTest.java:158)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
      	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
      	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      	at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
      	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
      	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
      	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
      	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
      	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
      	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
      	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
      	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
      	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
      	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
      	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
      	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
      	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
      

      Looking at the code it seems there is a missing test if the operation is not specified in the URI and default operation PUT is always used( that is why there is NullPointerException). I will correct it later in the evening or tomorrow a make a pullrequest to the git.

        Attachments

          Activity

            People

            • Assignee:
              davsclaus Claus Ibsen
              Reporter:
              rjakubco Roman jakubco
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: