Willem Jiang created CAMEL-5890:
-----------------------------------

             Summary: NPE when jaxb fallback converter is used with 
RequestEntityConverter
                 Key: CAMEL-5890
                 URL: https://issues.apache.org/jira/browse/CAMEL-5890
             Project: Camel
          Issue Type: Bug
    Affects Versions: 2.10.3, 2.10.2, 2.9.5, 2.9.4
            Reporter: Willem Jiang
            Assignee: Willem Jiang
             Fix For: 2.9.6, 2.10.4, 2.11.0


As the RequestEntityConverter.toRequestEntity(String str, Exchange exchange) 
doesn't has check if the exchange is null, it caused the NPE as the user 
complain in camel user mailing list[1]

[1]http://camel.465427.n5.nabble.com/Content-Enrich-Error-when-upgrading-Apache-Camel-from-2-9-2-to-any-higher-version-td5724244.html

Here is the stack trace.
{code}
CaughtExceptionType:org.apache.camel.TypeConversionException, 
CaughtExceptionMessage:Error during type conversion from type: com.ecc.DamBean 
to the required type: org.apache.commons.httpclient.methods.RequestEntity with 
value com.ecc.DamBean@8811a59 due Error during type conversion from type: 
java.lang.String to the required type: 
org.apache.commons.httpclient.methods.RequestEntity with value ... 
The complete Stack Trace : 
Exchange[ExchangePattern:InOnly, BodyType:String, Body:, 
CaughtExceptionType:org.apache.camel.TypeConversionException, 
CaughtExceptionMessage:Error during type conversion from type: com.ecc.DamBean 
to the required type: org.apache.commons.httpclient.methods.RequestEntity with 
value com.ecc.DamBean@8811a59 due Error during type conversion from type: 
java.lang.String to the required type: 
org.apache.commons.httpclient.methods.RequestEntity with value due 
java.lang.NullPointerException, 
StackTrace:org.apache.camel.TypeConversionException: Error during type 
conversion from type: com.ecc.DamBean to the required type: 
org.apache.commons.httpclient.methods.RequestEntity with value 
com.ecc.DamBean@8811a59 due Error during type conversion from type: 
java.lang.String to the required type: 
org.apache.commons.httpclient.methods.RequestEntity with value due 
java.lang.NullPointerException at 
org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:98)
       at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:289)
    at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:111)
      at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:72) 
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:47) at 
org.apache.camel.component.http.HttpProducer.createRequestEntity(HttpProducer.java:390)
      at 
org.apache.camel.component.http.HttpProducer.createMethod(HttpProducer.java:343)
     at 
org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:91)   at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
   at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at org.apache.camel.processor.Enricher.process(Enricher.java:114)       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
    at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:334)
       at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
   at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:61)
  at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at org.apache.camel.processor.Pipeline.process(Pipeline.java:148)       at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)        at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:61)
  at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
    at 
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
 at 
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:57)
    at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:275)
  at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:185)  
  at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:139)    
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909) 
     at java.lang.Thread.run(Thread.java:662)Caused by: 
org.apache.camel.TypeConversionException: Error during type conversion from 
type: java.lang.String to the required type: 
org.apache.commons.httpclient.methods.RequestEntity with value due 
java.lang.NullPointerException   at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:126)
      at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:98)
       at 
org.apache.camel.converter.jaxb.FallbackTypeConverter.marshall(FallbackTypeConverter.java:222)
       at 
org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:94)
       ... 44 moreCaused by: org.apache.camel.RuntimeCamelException: 
java.lang.NullPointerException    at 
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1271)
 at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:927)      
 at 
org.apache.camel.impl.converter.StaticMethodTypeConverter.convertTo(StaticMethodTypeConverter.java:47)
       at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:253)
    at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:111)
      at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:98)
       at 
org.apache.camel.converter.jaxb.FallbackTypeConverter.marshall(FallbackTypeConverter.java:222)
       at 
org.apache.camel.converter.jaxb.FallbackTypeConverter.convertTo(FallbackTypeConverter.java:94)
       at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:289)
    at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:111)
      at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:72) 
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:47) at 
org.apache.camel.component.http.HttpProducer.createRequestEntity(HttpProducer.java:390)
      at 
org.apache.camel.component.http.HttpProducer.createMethod(HttpProducer.java:343)
     at 
org.apache.camel.component.http.HttpProducer.process(HttpProducer.java:91)   at 
org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
   at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at org.apache.camel.processor.Enricher.process(Enricher.java:114)       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
    at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:334)
       at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
   at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
  at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)       at 
org.apache.camel.processor.Pipeline.process(Pipeline.java:80)        at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
  at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
    at 
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
 at 
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
    at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
        at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
    at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
       at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
     at 
org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:275)
  at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:183)  
  at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:139)    
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
  at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
     ... 1 moreCaused by: java.lang.NullPointerException     at 
org.apache.camel.component.http.RequestEntityConverter.toRequestEntity(RequestEntityConverter.java:51)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)     at 
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:923)       
... 50 more]
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to