Todd Eisemann wrote: > > 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? > it never was considered thread safe AFIACR - WSIF uses typically stubs in providers and those are typically not thread safe > > Are there any plans to improve WSIF for concurrency? > long time was some work considered to clarify exactly what is thread safe (such as factories) and what not (such as WSIFPort which is essentially stub derived from WSDL port and backed up by provider)
HTH, alek -- The best way to predict the future is to invent it - Alan Kay --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
