camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raul Kripalani (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-5722) Classloader mixup when consumers across bundles share the same camel-jetty port
Date Sat, 27 Oct 2012 16:51:12 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-5722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13485470#comment-13485470
] 

Raul Kripalani commented on CAMEL-5722:
---------------------------------------

Yep, I committed fixes on r1400729 and r1400734 on 21/10. There was also some discussion on
the mailing list regarding other cases to consider.

Claus, that's another solution, but most consumers allow for some custom logic to execute
before the route kicks in, e.g. HttpBinding and the like. The UoW processor wouldn't account
for those scenarios, or would it?

                
> Classloader mixup when consumers across bundles share the same camel-jetty port
> -------------------------------------------------------------------------------
>
>                 Key: CAMEL-5722
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5722
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jetty
>    Affects Versions: 2.8.0
>         Environment: OSGi environment, Karaf 2.2.2.
>            Reporter: Raul Kripalani
>            Assignee: Raul Kripalani
>            Priority: Critical
>
> Happens in an OSGi environment; but it is also applicable in modular servers that build
dynamic classloaders (e.g. JBoss AS) per deployed artifacts (WAR, module, EAR, etc.).
> If bundles A and B are both creating camel-jetty consumers on the same TCP port, the
consumers will share the underlying Jetty connector. Moreover, the Jetty connector is indeed
created by the first consumer that initialises on that TCP port.
> Since the Camel route executes on the Jetty Connector thread, all class resolutions will
happen against the classloader of the bundle that initialises first.
> This makes class resolution absolutely undeterministic and erratic. Quite a nasty bug
IMHO.
> Perhaps this can be fixed by adding a call to {{Thread.setContextClassLoader()}} passing
the classloader of the JettyHttpEndpoint, as soon as a request comes in?

--
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

Mime
View raw message