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

 

Reply via email to