Bug 1029836

Summary: JMSBridge FailureHandler does not load from specified module
Product: [JBoss] JBoss Enterprise Application Platform 6 Reporter: Jeff Mesnil <jmesnil>
Component: JMSAssignee: Jeff Mesnil <jmesnil>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Svehla <msvehla>
Severity: medium Docs Contact: Russell Dickenson <rdickens>
Priority: unspecified    
Version: 6.2.0CC: kkhan, mnovak, msvehla
Target Milestone: DR0   
Target Release: EAP 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-28 15:40:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jeff Mesnil 2013-11-13 10:37:38 UTC
Description of problem:

If an error occurs and the JMS bridge tries to reconnect to the JMS provider to look up the JMS resources from its FailureHandler, it fails with the exception:

10:37:02,546 INFO  [org.hornetq.jms.server] (pool-3-thread-3) HQ121000: Failed to set up JMS bridge connections. Most probably the source or target servers are unavailable. Will retry after a pause of 1,000 ms
10:37:03,547 WARN  [org.hornetq.jms.server] (pool-3-thread-3) HQ122010: Failed to connect JMS Bridge: javax.naming.NamingException: JBAS011843: Failed instantiate InitialContextFactory org.apache.qpid.jndi.PropertiesFileInitialContextFactory from classloader ModuleClassLoader for Module "org.hornetq:main" from local module loader @ac44b88 (finder: local module finder @5d3ad33d (roots: /usr/share/jbossas/modules,/usr/share/jbossas/modules/system/layers/base))
    at org.jboss.as.naming.InitialContextFactoryBuilder.createInitialContextFactory(InitialContextFactoryBuilder.java:64)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:681) [rt.jar:1.6.0_24]
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305) [rt.jar:1.6.0_24]
    at javax.naming.InitialContext.init(InitialContext.java:240) [rt.jar:1.6.0_24]
    at javax.naming.InitialContext.<init>(InitialContext.java:214) [rt.jar:1.6.0_24]
    at org.hornetq.jms.bridge.impl.JNDIFactorySupport.createObject(JNDIFactorySupport.java:55) [hornetq-jms-server.jar:]
    at org.hornetq.jms.bridge.impl.JNDIDestinationFactory.createDestination(JNDIDestinationFactory.java:40) [hornetq-jms-server.jar:]
    at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjects(JMSBridgeImpl.java:1222) [hornetq-jms-server.jar:]
    at org.hornetq.jms.bridge.impl.JMSBridgeImpl.setupJMSObjectsWithRetry(JMSBridgeImpl.java:1460) [hornetq-jms-server.jar:]
    at org.hornetq.jms.bridge.impl.JMSBridgeImpl.access$2000(JMSBridgeImpl.java:83) [hornetq-jms-server.jar:]
    at org.hornetq.jms.bridge.impl.JMSBridgeImpl$FailureHandler.run(JMSBridgeImpl.java:2049) [hornetq-jms-server.jar:]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_24]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_24]
    at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]

How reproducible:

Always

Steps to Reproduce:
1. run a jms-bridge with a JMS provider loaded from a module
2. disconnect the network to make the jms-bridge fails
3. reconnect the network. The jms-bridge will handle the failure and reconnects to the JMS provider

Actual results:

The jms-bridge FailureHandler is not able to load the JMS provider classes.

Expected results:

The jms-bridge FailureHandler must be able to load the JMS provider classes from the module specified when the jms-bridge is added.

Comment 1 Miroslav Novak 2013-11-13 12:40:18 UTC
This seems to be similar to bz#1021389.

Comment 2 Jeff Mesnil 2013-11-13 12:46:14 UTC
You are right, this looks like the same issue. I assumed that for this issue the module (that loads the qpid classes seen in the stack trace)  was correctly specified when the jms-bridge was added but I'll need a confirmation for this.

Comment 3 Jeff Mesnil 2014-01-20 14:47:32 UTC
PR for jboss-eap https://github.com/jbossas/jboss-eap/pull/840