[
https://issues.apache.org/jira/browse/CAMEL-3813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012874#comment-13012874
]
Marcin Kolda commented on CAMEL-3813:
-------------------------------------
I prepared such testcase to verify that ThreadLocal is empty right after
evaluation (without using UnitOfWork and Synchronization). It's done this way
in {{public <T> T evaluate(CamelContext context, Object body, Class<T> type)}}
and few other methods in XPathBuilder. Such solution would be just simpler for
me.
I tested this with our real system previously and that still didn't work for
us. I will have to digg into this when I'll have more time. I'll let you know
if I find anything.
> XPathBuilder doesn't clear ThreadLocal with exchange after evaluation
> ---------------------------------------------------------------------
>
> Key: CAMEL-3813
> URL: https://issues.apache.org/jira/browse/CAMEL-3813
> Project: Camel
> Issue Type: Improvement
> Components: camel-core
> Affects Versions: 2.7.0
> Reporter: Marcin Kolda
> Assignee: Claus Ibsen
> Priority: Minor
> Labels: xpath
> Fix For: 2.8.0
>
> Attachments: bug_reproduction.patch
>
>
> XPathBuilder doesn't clear ThreadLocal with exchange (and variableResolver)
> after evaluation. In such case reference to current exchange (and body,
> headers, properties, etc.) remains in Thread until current thread dies or
> evaluates new exchange with the same XPathBuilder instance.
> The result of this is that each thread can contain references to multiple
> exchanges (up to the number of xpaths in camel context), that can't be
> collected by GC.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira