[jboss-svn-commits] JBL Code SVN: r28880 - in labs/jbosstm/trunk/XTS: WSCF/classes11/com/arjuna/mwlabs/wsc11 and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Aug 10 04:45:59 EDT 2009
Author: adinn
Date: 2009-08-10 04:45:59 -0400 (Mon, 10 Aug 2009)
New Revision: 28880
Modified:
labs/jbosstm/trunk/XTS/WSCF/classes10/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java
labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mwlabs/wsc11/ContextFactoryMapperImple.java
labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/RegistrarImple.java
labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/ba/RegistrarImple.java
labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/RegistrarImple.java
labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/ba/RegistrarImple.java
Log:
resolved race condition in protocol loading code and updated hashmap change to apply to ba case and also to 1.0 cases -- fixes for JBTM-603
Modified: labs/jbosstm/trunk/XTS/WSCF/classes10/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes10/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSCF/classes10/com/arjuna/mwlabs/wsc/ContextFactoryMapperImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -93,22 +93,25 @@
try
{
org.w3c.dom.Document doc = convert(coordinationTypeURI);
- Object type = _protocols.getProtocolImplementation(convert(coordinationTypeURI));
+ // get and replace have to happen atomically
+ synchronized (_protocols) {
+ Object type = _protocols.getProtocolImplementation(convert(coordinationTypeURI));
- if (type instanceof String)
- {
- Class c = Class.forName((String) type);
+ if (type instanceof String)
+ {
+ Class c = Class.forName((String) type);
- ContextFactory factory = (ContextFactory) c.newInstance();
+ ContextFactory factory = (ContextFactory) c.newInstance();
- _protocols.replaceProtocol(doc, factory);
+ _protocols.replaceProtocol(doc, factory);
- return factory;
- }
- else
- {
- return (ContextFactory) type;
- }
+ return factory;
+ }
+ else
+ {
+ return (ContextFactory) type;
+ }
+ }
}
catch (Exception ex)
{
Modified: labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mwlabs/wsc11/ContextFactoryMapperImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mwlabs/wsc11/ContextFactoryMapperImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mwlabs/wsc11/ContextFactoryMapperImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -93,22 +93,25 @@
try
{
org.w3c.dom.Document doc = convert(coordinationTypeURI);
- Object type = _protocols.getProtocolImplementation(convert(coordinationTypeURI));
+ // get and replace have to happen atomically
+ synchronized (_protocols) {
+ Object type = _protocols.getProtocolImplementation(convert(coordinationTypeURI));
- if (type instanceof String)
- {
- Class c = Class.forName((String) type);
+ if (type instanceof String)
+ {
+ Class c = Class.forName((String) type);
- ContextFactory factory = (ContextFactory) c.newInstance();
+ ContextFactory factory = (ContextFactory) c.newInstance();
- _protocols.replaceProtocol(doc, factory);
+ _protocols.replaceProtocol(doc, factory);
- return factory;
- }
- else
- {
- return (ContextFactory) type;
- }
+ return factory;
+ }
+ else
+ {
+ return (ContextFactory) type;
+ }
+ }
}
catch (Exception ex)
{
Modified: labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/RegistrarImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/RegistrarImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/at/RegistrarImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -32,6 +32,7 @@
package com.arjuna.mwlabs.wst.at;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.mw.wsas.activity.ActivityHierarchy;
@@ -345,5 +346,5 @@
}
private CoordinatorManager _coordManager = null;
- private HashMap _hierarchies = new HashMap();
+ private ConcurrentHashMap _hierarchies = new ConcurrentHashMap();
}
Modified: labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/ba/RegistrarImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/ba/RegistrarImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSTX/classes10/com/arjuna/mwlabs/wst/ba/RegistrarImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -32,6 +32,7 @@
package com.arjuna.mwlabs.wst.ba;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.mw.wsas.activity.ActivityHierarchy;
@@ -262,5 +263,5 @@
private CoordinatorManager _coordManager = null;
- private HashMap _hierarchies = new HashMap();
+ private ConcurrentHashMap _hierarchies = new ConcurrentHashMap();
}
Modified: labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/RegistrarImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/RegistrarImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/at/RegistrarImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -26,6 +26,7 @@
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
public class RegistrarImple implements Registrar
{
@@ -298,5 +299,5 @@
}
private CoordinatorManager _coordManager = null;
- private HashMap _hierarchies = new HashMap();
+ private ConcurrentHashMap _hierarchies = new ConcurrentHashMap();
}
Modified: labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/ba/RegistrarImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/ba/RegistrarImple.java 2009-08-10 08:38:55 UTC (rev 28879)
+++ labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mwlabs/wst11/ba/RegistrarImple.java 2009-08-10 08:45:59 UTC (rev 28880)
@@ -57,6 +57,7 @@
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import javax.xml.ws.wsaddressing.W3CEndpointReferenceBuilder;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
public class RegistrarImple implements com.arjuna.wsc11.Registrar
{
@@ -273,5 +274,5 @@
private CoordinatorManager _coordManager = null;
- private HashMap _hierarchies = new HashMap();
+ private ConcurrentHashMap _hierarchies = new ConcurrentHashMap();
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list