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

Claus Ibsen resolved CAMEL-9448.
--------------------------------
       Resolution: Fixed
         Assignee: Claus Ibsen
    Fix Version/s: 2.15.0

Camel 2.15 onwards do not use a soft cache for endpoints.

Camel 2.14.x is EOL.

> java.lang.NullPointerException in the DefaultCamelContext.removeEndpoints()
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-9448
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9448
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.14.1
>            Reporter: Andy Fedotov
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 2.15.0
>
>
> DefaultCamelContext uses LRUSoftCache for endpoints cache. LRUSoftCache store 
> values as SoftReference which can be reclaimed by GC. 
> DefaultCamelContext.removeEndpoints() does not take into account this fact. 
> This sometimes leads to java.lang.NullPointerException.
> We are still tied to 2.14.x Camel, because of our target environment is IBM 
> enterprise product running under IBM WAS / IBM JDK 1.6. But seems like this 
> affects all latest Camel releases. Here is an example of error stack trace I 
> observe from time to time...
> {noformat}
> 0 java.lang.NullPointerException: null 
> 1 at 
> org.apache.camel.impl.DefaultCamelContext.removeEndpoints(DefaultCamelContext.java:465)
>  ~[camel-core-2.14.1.jar:2.14.1] 
> 2 at 
> com.amrusoft.easimport.biscc.BisccDocumentImporterBean.execute(BisccDocumentImporterBean.java:196)
>  ~[adapter-biscc-1.4.0.jar:na] 
> 3 at sun.reflect.GeneratedMethodAccessor600.invoke(Unknown Source) ~[na:na] 
> 4 at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>  ~[na:1.6.0] 
> 5 at java.lang.reflect.Method.invoke(Method.java:611) ~[na:1.6.0] 
> 6 at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 7 at 
> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 8 at 
> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 9 at 
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:167) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 10 at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
>  [camel-core-2.14.1.jar:2.14.1] 
> 11 at 
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:67) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 12 at 
> org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:103)
>  ~[camel-core-2.14.1.jar:2.14.1] 
> 13 at 
> org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:71) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 14 at 
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>  ~[camel-core-2.14.1.jar:2.14.1] 
> 15 at 
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:120) 
> ~[camel-core-2.14.1.jar:2.14.1] 
> 16 at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>  [camel-core-2.14.1.jar:2.14.1] 
> 17 at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
>  [camel-core-2.14.1.jar:2.14.1] 
> 18 at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>  [camel-core-2.14.1.jar:2.14.1] 
> 19 at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) 
> [camel-core-2.14.1.jar:2.14.1] 
> 20 at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) 
> [camel-core-2.14.1.jar:2.14.1] 
> 21 at 
> org.apache.camel.processor.idempotent.IdempotentConsumer.process(IdempotentConsumer.java:125)
>  [camel-core-2.14.1.jar:2.14.1] 
> 22 at 
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
>  [camel-core-2.14.1.jar:2.14.1] 
> 23 at 
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
>  [camel-core-2.14.1.jar:2.14.1] 
> 24 at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
>  [camel-core-2.14.1.jar:2.14.1] 
> 25 at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) 
> [camel-core-2.14.1.jar:2.14.1] 
> 26 at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) 
> [camel-core-2.14.1.jar:2.14.1] 
> 27 at 
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
>  [camel-core-2.14.1.jar:2.14.1] 
> 28 at org.apache.camel.processor.Pipeline.process(Pipeline.java:60) 
> [camel-core-2.14.1.jar:2.14.1] 
> 29 at 
> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:166)
>  [camel-core-2.14.1.jar:2.14.1] 
> 30 at 
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:433)
>  [camel-core-2.14.1.jar:2.14.1] 
> 31 at 
> org.apache.camel.component.file.remote.RemoteFileConsumer.processExchange(RemoteFileConsumer.java:99)
>  [camel-ftp-2.14.1.jar:2.14.1] 
> 32 at 
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211)
>  [camel-core-2.14.1.jar:2.14.1] 
> 33 at 
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175)
>  [camel-core-2.14.1.jar:2.14.1] 
> 34 at 
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
>  [camel-core-2.14.1.jar:2.14.1] 
> 35 at 
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114)
>  [camel-core-2.14.1.jar:2.14.1] 
> 36 at 
> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
>  [spring-context-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
> 37 at 
> org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
>  [spring-context-3.2.11.RELEASE.jar:3.2.11.RELEASE] 
> 38 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:450) 
> [na:1.6.0] 
> 39 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314) 
> [na:1.6.0] 
> 40 at java.util.concurrent.FutureTask.run(FutureTask.java:149) [na:1.6.0] 
> 41 at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:109)
>  [na:1.6.0] 
> 42 at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:217)
>  [na:1.6.0] 
> 43 at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:908)
>  [na:1.6.0] 
> 44 at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:931)
>  [na:1.6.0] 
> 45 at java.lang.Thread.run(Thread.java:773) [na:1.6.0]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to