[
https://issues.apache.org/jira/browse/CAMEL-5890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Willem Jiang resolved CAMEL-5890.
---------------------------------
Resolution: Fixed
Applied the patch into trunk, camel-2.10.x and camel-2.9.x branches.
> 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.9.4, 2.9.5, 2.10.2, 2.10.3
> 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