Worried about multithreading with WSIF (ConcurrentModificationException)

"Todd Eisemann" <[email protected]> Wed, 9 Aug 2006 15:43:36 -0700
Newsgroups gmane.comp.apache.webservices.wsif.user
Message-ID <[email protected]>
Hello all

 

We are wsif users and incorporate it in our production applications.
Recently, we've run into 2 concurrency problems with WSIF Version 2.0.

 

The latest error is

 

  1| java.util.ConcurrentModificationException: concurrent access to
HashMap attempted by Thread[WebContainer : 3,5,main]

  1|        at java.util.HashMap.onEntry(HashMap.java(Compiled Code))

  1|        at java.util.HashMap.transfer(HashMap.java(Compiled Code))

  1|        at java.util.HashMap.resize(HashMap.java(Inlined Compiled
Code))

  1|        at java.util.HashMap.addEntry(HashMap.java(Compiled Code))

  1|        at java.util.HashMap.put(HashMap.java(Compiled Code))

  1|        at
org.apache.wsif.util.WSIFUtils.isJavaKeyword(WSIFUtils.java:1350)

  1|        at
org.apache.wsif.util.WSIFUtils.getJavaNameFromXMLName(WSIFUtils.java:971
)

  1|        at
org.apache.wsif.util.WSIFUtils.getPackageNameFromXMLName(WSIFUtils.java:
988)

  1|        at
org.apache.wsif.util.WSIFUtils.getPackageNameFromNamespaceURI(WSIFUtils.
java:890)

 

I can see how this can happen in the isJavaKeyword() method as the
static HashMap kewordmap get re-initialized every call.  

Why not initiatialize that HashMap just once in a static initializer????

 

But, this is the second thread synchronization problem that we have
stumbled across. The other was in the constructor for
WSIFDynamicProvider_ApacheSOAP().

 

I worry that there may be other multithreading problems in WSIF that we
just have not come across in our load test and production environments. 

 

Is WSIF 2.0 considered thread safe?

Are there any plans to improve WSIF for concurrency?

 

Thanks for your help...

Todd