[
https://jira.jboss.org/browse/JBESB-3470?page=com.atlassian.jira.plugin.s...
]
Kevin Conner commented on JBESB-3470:
-------------------------------------
The issue is that the wrong thread context classloader is being initialised for AS5
deployments so the correct 'env' is not being picked up.
I modified the webservice_producer quickstart to create two separate deployments (a war
file and an associated esb file). The war file was also modified to include environment
properties and to have these printed out when the webservice was invoked.
Testing this on AS4 deployments show that it works as expected, without having to modify
the TCCL. On AS5 deployments it is necessary to obtain the JBossWebMetaData to obtain the
ENCLoader irrespective of whether we are using CXF or native.
SOAPProcessor isn't thread-safe
-------------------------------
Key: JBESB-3470
URL:
https://jira.jboss.org/browse/JBESB-3470
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 4.9
Reporter: Pavel Macik
Priority: Blocker
Fix For: 4.9 CP1
Attachments: diffs, Quickstart_webservice_producer.esb,
Quickstart_webservice_producer.war
The SOAPProcessor during message processing creates and destroys a subcontext named
"env" which is fine when the ESB service is configured as single-threaded. But
when the ESB service's action pipeline is configured as multi-threaded (maxThreads
> 1) one of the following exceptions will occure:
javax.naming.NameNotFoundException: env not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.unbind(NamingServer.java:349)
at org.jnp.interfaces.NamingContext.unbind(NamingContext.java:871)
at org.jnp.interfaces.NamingContext.destroySubcontext(NamingContext.java:1193)
at org.jnp.interfaces.NamingContext.destroySubcontext(NamingContext.java:1185)
at org.jboss.soa.esb.actions.soap.SOAPProcessor.process(SOAPProcessor.java:231)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:649)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.processPipeline(ActionProcessingPipeline.java:603)
at
org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:433)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener$TransactionalRunner.run(MessageAwareListener.java:540)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
or
javax.naming.NameAlreadyBoundException; remaining name 'env'
at org.jnp.server.NamingServer.createSubcontext(NamingServer.java:619)
at org.jnp.interfaces.NamingContext.createSubcontext(NamingContext.java:1116)
at org.jnp.interfaces.NamingContext.createSubcontext(NamingContext.java:1096)
at org.jboss.soa.esb.actions.soap.SOAPProcessor.process(SOAPProcessor.java:229)
... 7 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira