]
Kevin Conner reopened JBESB-2301:
---------------------------------
Assignee: Kevin Conner (was: Daniel Bevenius)
Handle wise threading/pooling
-----------------------------
Key: JBESB-2301
URL:
https://jira.jboss.org/jira/browse/JBESB-2301
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Web Services
Affects Versions: 4.4 CP1
Reporter: Kevin Conner
Assignee: Kevin Conner
Fix For: 4.4 CP2
The current wise codebase (in ESB4.4 and SOA 4.3) is not thread safe and needs some
changes made. There are also issues with classloading and clearing of clients.
The current WSDynamicClientFactory singleton contains a Map which references the
WSDynamicClient instances using a name. This map is current implemented as a HashMap but
is accessed concurrently.
In addition, the name used as the key is specified within the configuration so there is a
possibility of clashes with other deployments, especially as this is used to create
temporary files on the filesystem.
Instantiation
-------------
The factory checks this map to see whether a specified client exists and, if not present,
creates one but it does this without synchronizing and can lead to multiple threads
clashing during the construction of the same client. In addition the context classloader
of the first deployment to create the client will be used to create the classes and this
can leak into other deployments.
Invocation
----------
The invocation of the service is handled through the jax-ws Port api and this is not
thread-safe. The wise codebase shares the same client instance with multiple threads and,
therefore, can suffer from concurrency problems.
Cleanup
-------
The clearCache method on the factory singleton removes *all* clients from the map and is
not thread-safe.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: