You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Grzegorz Grzybek (JIRA)" <ji...@apache.org> on 2013/12/04 06:59:36 UTC

[jira] [Comment Edited] (AMQ-4850) NoClassDefFoundError: javax/net/ssl/SSLServerSocket (in Karaf)

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

Grzegorz Grzybek edited comment on AMQ-4850 at 12/4/13 5:58 AM:
----------------------------------------------------------------

The stack trace is different than mine, because I've tested creating connection in the Bundle-Activator thread and {{javax.net.ssl.SSLServerSocket}} is correctly loaded by {{org.apache.felix.framework.ExtensionManager.ExtensionManagerWiring.getClassByDelegation(String)}} related to system bundle. Eventually this class is loaded using {{sun.misc.Launcher$AppClassLoader}}.

What you have is an attempt to connect to AMQ from custom thread, so my questions are:
* how do you create the thread?
* is this thread properly managed between bundle restarts?
* have you set thread's context class loader?
* where do you start the thread? (inside BundleActivator or in some bundle/service listener?)


was (Author: gzres):
The stack trace is different than mine, because I've tested creating connection in the Bundle-Activator thread and {{javax.net.ssl.SSLServerSocket}} is correctly loaded by {{org.apache.felix.framework.ExtensionManager.ExtensionManagerWiring.getClassByDelegation(String)}} related to system bundle. Eventually this class is loaded using {{sun.misc.Launcher$AppClassLoader}}.

What you have is an attempt to connect to AMQ from custom tread, so my questions:
* how do you create the thread?
* is this thread properly managed between bundle restarts?
* have you set thread's context class loader?
* where do you start the thread? (inside BundleActivator or in some bundle/service listener?)

> NoClassDefFoundError: javax/net/ssl/SSLServerSocket (in Karaf)
> --------------------------------------------------------------
>
>                 Key: AMQ-4850
>                 URL: https://issues.apache.org/jira/browse/AMQ-4850
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: OSGi/Karaf
>    Affects Versions: 5.9.0
>         Environment: Oracle JDK 7u45, Karaf 2.3.3 with activemq-broker installed from 5.9.0 feature
>            Reporter: Amichai Rothman
>            Assignee: Jean-Baptiste Onofré
>
> I couldn't find a way to recreate this consistently, but after repeating several times the following steps reproduce it:
> 1. Install custom Karaf 2.3.3 from scratch. Customizations include installing the activemq-broker feature using the featuresBoot configuration (along with a couple other unrelated features), and a dozen or so of my application's bundles in the deploy folder.
> 2. Start Karaf - everything works fine.
> 3. Shut down Karaf.
> 4. Touch my application's 'common' bundle (in deploy folder). The other application bundles depend on this one. This is *not* the bundle that uses ActiveMQ.
> 5. Start Karaf - it first starts all the app bundles (the old version I think), then it picks up the modified bundle timestamp and restarts the app bundles in what appears to be arbitrary order. This usually works, but once in a while the app's 'bus' bundle (which connects to ActiveMQ) fails to start with this exception showing up in the logs.
> 6. Interestingly, restarting the app or activemq bundles, or even restarting Karaf itself, doesn't fix things - once it enters this invalid state, it seems to stay stuck in it and continues with the same exception and with the app unable to connect to ActiveMQ. However, if I shut down Karaf and once again touch my app's 'common' bundle in the deploy folder and then start up Karaf again, it restarts the app bundles and this time everything goes back to normal, with a successful connection to ActiveMQ. So it looks like while the first occurrence is not recreated consistently, this state is not just a runtime thing but remains persisted somehow for as long as the app bundle files aren't modified.
> Here is the stack trace:
> java.lang.NoClassDefFoundError: javax/net/ssl/SSLServerSocket
>         at org.apache.activemq.util.IntrospectionSupport.setProperty(IntrospectionSupport.java:163)
>         at org.apache.activemq.util.IntrospectionSupport.setProperties(IntrospectionSupport.java:151)
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.createTransport(FailoverTransportFactory.java:74)
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.createTransport(FailoverTransportFactory.java:63)
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.doConnect(FailoverTransportFactory.java:38)
>         at org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:64)
>         at org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:258)
>         at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:273)
>         at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:246)
>         at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:186)
> ...



--
This message was sent by Atlassian JIRA
(v6.1#6144)