[
https://issues.apache.org/jira/browse/CAMEL-8086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14233013#comment-14233013
]
Claus Ibsen commented on CAMEL-8086:
------------------------------------
I found the issue, the problem is that the old message that the covertBodyTo
creates a new message to replace the old message, and the old message has a
reference to the live exchange, so it cannot be GC (even its no longer in use).
So we need to de-referrence that, and it works.
> Possible memoryleak when convertBodyTo is used in a dynamicRouter
> -----------------------------------------------------------------
>
> Key: CAMEL-8086
> URL: https://issues.apache.org/jira/browse/CAMEL-8086
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 2.13.2
> Reporter: Bjørn Hilstad
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 2.14.1, 2.15.0, 2.13.4
>
> Attachments: SomeProcessor.java, applicationContext.xml
>
>
> We have implemented a while loop using a dynamicRouter.
> The dynamicRouter looks like this:
> <dynamicRouter>
> <header>someheadername</header>
> </dynamicRouter>
> where someheadername refers to another route using direct:routename
> The route that handles direct:routename looks like this:
> <bean ref="someref"/>
> <convertBodyTo type="java.lang.String"/>
> The someref-bean just puts some data in the body and header and would also be
> responsible to set the value of someheadername=null to exit the dynamicRouter.
> During execution of these routes we see that heapusage increases until OOM if
> the dynamicRouter does not exit before OOM. The number of instances of
> DefaultMessage also keeps increasing.
> If we remove the <convertBodyTo> from the route we do not get OOM and the
> number of instances of DefaultMessage is stable and low.
> The same also happens if we replace <convertBodyTo> with a <transform>.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)