You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2012/01/31 13:44:20 UTC
svn commit: r1238455 -
/sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
Author: cziegeler
Date: Tue Jan 31 12:44:20 2012
New Revision: 1238455
URL: http://svn.apache.org/viewvc?rev=1238455&view=rev
Log:
SLING-2254 : ConcurrentModificationException in AdapterManagerImpl.createAdapterFactoryMap. Apply patch from Felix
Modified:
sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
Modified: sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java?rev=1238455&r1=1238454&r2=1238455&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java (original)
+++ sling/trunk/bundles/extensions/adapter/src/main/java/org/apache/sling/adapter/internal/AdapterManagerImpl.java Tue Jan 31 12:44:20 2012
@@ -67,7 +67,7 @@ import org.slf4j.LoggerFactory;
public class AdapterManagerImpl implements AdapterManager {
private Logger log = LoggerFactory.getLogger(getClass());
-
+
/**
* The OSGi <code>ComponentContext</code> to retrieve
* {@link AdapterFactory} service instances.
@@ -365,18 +365,17 @@ public class AdapterManagerImpl implemen
Map<String, AdapterFactory> afm = new HashMap<String, AdapterFactory>();
// AdapterFactories for this class
- AdapterFactoryDescriptorMap afdMap;
synchronized (factories) {
- afdMap = factories.get(clazz.getName());
- }
- if (afdMap != null) {
- for (AdapterFactoryDescriptor afd : afdMap.values()) {
- String[] adapters = afd.getAdapters();
- for (String adapter : adapters) {
- if (!afm.containsKey(adapter)) {
- final AdapterFactory factory = afd.getFactory();
- if ( factory != null ) {
- afm.put(adapter, factory);
+ AdapterFactoryDescriptorMap afdMap = factories.get(clazz.getName());
+ if (afdMap != null) {
+ for (AdapterFactoryDescriptor afd : afdMap.values()) {
+ String[] adapters = afd.getAdapters();
+ for (String adapter : adapters) {
+ if (!afm.containsKey(adapter)) {
+ final AdapterFactory factory = afd.getFactory();
+ if (factory != null) {
+ afm.put(adapter, factory);
+ }
}
}
}