summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/extensibility/src/main/java/org
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-01-13 01:00:58 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-01-13 01:00:58 +0000
commitcf516d4c043bb85b42f2ea3ad17cb94eee26bc36 (patch)
treef90730184475c2688293f38472fb8977477409ae /sca-java-2.x/trunk/modules/extensibility/src/main/java/org
parentd45c331e00155871433ad77020ae3193b39f80ce (diff)
Remove the synchronized blocks to avoid deadlock between DefaultFactoryExtensionPoint and DefaultUtilityExtensionPoint. Some of the utilities such as XMLInputFactory are loaded from DefaultFactoryExtensionPoint ATM.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@898590 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/extensibility/src/main/java/org')
-rw-r--r--sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java10
-rw-r--r--sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java12
2 files changed, 11 insertions, 11 deletions
diff --git a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java
index 2ccb192fdb..1c49ea4ee4 100644
--- a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java
+++ b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultFactoryExtensionPoint.java
@@ -25,8 +25,8 @@ import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
@@ -39,7 +39,7 @@ import org.apache.tuscany.sca.extensibility.ServiceDeclaration;
*/
public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint {
private ExtensionPointRegistry registry;
- private Map<Class<?>, Object> factories = new HashMap<Class<?>, Object>();
+ private Map<Class<?>, Object> factories = new ConcurrentHashMap<Class<?>, Object>();
/**
* Constructs a new DefaultModelFactoryExtensionPoint.
@@ -53,7 +53,7 @@ public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint {
*
* @param factory The factory to add
*/
- public synchronized void addFactory(Object factory) {
+ public void addFactory(Object factory) {
Class<?>[] interfaces = factory.getClass().getInterfaces();
if (interfaces.length == 0) {
Class<?> sc = factory.getClass().getSuperclass();
@@ -72,7 +72,7 @@ public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint {
*
* @param factory The factory to remove
*/
- public synchronized void removeFactory(Object factory) {
+ public void removeFactory(Object factory) {
Class<?>[] interfaces = factory.getClass().getInterfaces();
if (interfaces.length == 0) {
Class<?> sc = factory.getClass().getSuperclass();
@@ -103,7 +103,7 @@ public class DefaultFactoryExtensionPoint implements FactoryExtensionPoint {
* @param factoryInterface The lookup key (factory interface)
* @return The factory
*/
- public synchronized <T> T getFactory(Class<T> factoryInterface) {
+ public <T> T getFactory(Class<T> factoryInterface) {
Object factory = factories.get(factoryInterface);
if (factory == null) {
diff --git a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
index 41e2377db5..40e4635d77 100644
--- a/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
+++ b/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
@@ -55,11 +55,11 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
*
* @throws IllegalArgumentException if utility is null
*/
- public synchronized void addUtility(Object utility) {
+ public void addUtility(Object utility) {
addUtility(null, utility);
}
- public synchronized void addUtility(Object key, Object utility) {
+ public void addUtility(Object key, Object utility) {
if (utility == null) {
throw new IllegalArgumentException("Cannot register null as a Service");
}
@@ -90,7 +90,7 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
*
* @throws IllegalArgumentException if utilityType is null
*/
- public synchronized <T> T getUtility(Class<T> utilityType) {
+ public <T> T getUtility(Class<T> utilityType) {
return getUtility(utilityType, null);
}
@@ -101,7 +101,7 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
*
* @throws IllegalArgumentException if utility is null
*/
- public synchronized void removeUtility(Object utility) {
+ public void removeUtility(Object utility) {
if (utility == null) {
throw new IllegalArgumentException("Cannot remove null as a Service");
}
@@ -143,7 +143,7 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
}
}
- public synchronized <T> T getUtility(Class<T> utilityType, Object key) {
+ public <T> T getUtility(Class<T> utilityType, Object key) {
if (utilityType == null) {
throw new IllegalArgumentException("Cannot lookup Service of type null");
}
@@ -197,7 +197,7 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
return !utilityType.isInterface() && Modifier.isPublic(modifiers) && !Modifier.isAbstract(modifiers);
}
- public synchronized void start() {
+ public void start() {
// NOOP
}