activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-5821) Activator can trigger unwanted behaviour when loading classes from other bundles
Date Wed, 10 Jun 2015 08:22:00 GMT

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

Guillaume Nodet commented on AMQ-5821:
--------------------------------------

The patch is wrong.
The goal is not to verify that the bundle actually imports *some* known packages, but the
fact that the bundle imports *our* package.
So the use of the wiring API is good, but we need to ensure that the provider is *our* bundle,
or at least the same bundle which is used to load the classes.

> Activator can trigger unwanted behaviour when loading classes from other bundles
> --------------------------------------------------------------------------------
>
>                 Key: AMQ-5821
>                 URL: https://issues.apache.org/jira/browse/AMQ-5821
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.11.1
>            Reporter: Christian Schneider
>             Fix For: 5.11.2, 5.12.0
>
>
> Currently org.apache.activemq.util.osgi.Activator watches all other bundles and tries
to load some classes using their classloader to check if they might implement extensions.

> This can go wrong if the bundle uses dynamic imports like e.g. jline does. In this case
the jline bundle is triggered to load classes from ActiveMQ. This establishes a wiring from
jline to ActiveMQ. If the ActiveMQ bundle are now refreshed or uninstalled jline also has
to be refreshed which triggers refreshs of a lot more bundles.
> I propose to replace the class probing with checking of the bundle requirements. We simply
check if the bundle has an import for the packages of the interface classes of ActiveMQ. So
we avoid triggering classloading and the creation of unwanted wirings. 



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

Mime
View raw message