Author: mir
Date: Tue Aug 24 15:39:53 2010
New Revision: 988601
URL: http://svn.apache.org/viewvc?rev=988601&view=rev
Log:
CLEREZZA-285: added synchronized block when iterating over
Collection.synchronized[Set/Map/Collection/List]()
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.enrichment/src/main/java/org/apache/clerezza/platform/rdf/enrichment/EnrichmentTcProvider.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/src/main/java/org/apache/clerezza/platform/typehandlerspace/TypeHandlerDiscoveryImpl.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/AbstractTripleCollection.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleTripleCollection.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.enrichment/src/main/java/org/apache/clerezza/rdf/enrichment/EnrichmentTriples.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
Tue Aug 24 15:39:53 2010
@@ -77,11 +77,14 @@ public abstract class AbstractDiscobitsH
TypedLiteral mediaTypeLiteral =
LiteralFactory.getInstance().createTypedLiteral(mediaType.toString());
infoDiscoBitNode.deleteProperties(DISCOBITS.mediaType);
infoDiscoBitNode.addProperty(DISCOBITS.mediaType,mediaTypeLiteral);
- for(MetaDataGenerator generator : getMetaDataGenerators()) {
- try {
- generator.generate(infoDiscoBitNode, data,
mediaType);
- } catch (RuntimeException ex) {
- logger.error("Exception in MetaDataGenerator ",
ex);
+ Set<MetaDataGenerator> metaDataGenerators =
getMetaDataGenerators();
+ synchronized(metaDataGenerators) {
+ for(MetaDataGenerator generator : metaDataGenerators) {
+ try {
+ generator.generate(infoDiscoBitNode,
data, mediaType);
+ } catch (RuntimeException ex) {
+ logger.error("Exception in
MetaDataGenerator ", ex);
+ }
}
}
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
Tue Aug 24 15:39:53 2010
@@ -110,7 +110,7 @@ public class DiscobitsTypeHandler extend
private static final Logger logger =
LoggerFactory.getLogger(DiscobitsTypeHandler.class);
- private Set<MetaDataGenerator> metaDataGenerators =
+ private final Set<MetaDataGenerator> metaDataGenerators =
Collections.synchronizedSet(new
HashSet<MetaDataGenerator>());
/**
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.enrichment/src/main/java/org/apache/clerezza/platform/rdf/enrichment/EnrichmentTcProvider.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.enrichment/src/main/java/org/apache/clerezza/platform/rdf/enrichment/EnrichmentTcProvider.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.enrichment/src/main/java/org/apache/clerezza/platform/rdf/enrichment/EnrichmentTcProvider.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.enrichment/src/main/java/org/apache/clerezza/platform/rdf/enrichment/EnrichmentTcProvider.java
Tue Aug 24 15:39:53 2010
@@ -75,7 +75,7 @@ public class EnrichmentTcProvider implem
public static final String SYSTEM_GRAPH_FILTER =
"(name="+ Constants.SYSTEM_GRAPH_URI_STRING +")";
private LockableMGraph contentGraph;
- private Collection<Enricher> enrichers =
Collections.synchronizedCollection(new HashSet<Enricher>());
+ private final Collection<Enricher> enrichers =
Collections.synchronizedCollection(new HashSet<Enricher>());
@Reference
private ContentGraphProvider cgProvider;
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/src/main/java/org/apache/clerezza/platform/typehandlerspace/TypeHandlerDiscoveryImpl.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/src/main/java/org/apache/clerezza/platform/typehandlerspace/TypeHandlerDiscoveryImpl.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/src/main/java/org/apache/clerezza/platform/typehandlerspace/TypeHandlerDiscoveryImpl.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typehandlerspace/src/main/java/org/apache/clerezza/platform/typehandlerspace/TypeHandlerDiscoveryImpl.java
Tue Aug 24 15:39:53 2010
@@ -66,7 +66,7 @@ public class TypeHandlerDiscoveryImpl im
private Set<Object> typeHandlerStore = new HashSet<Object>();
private List<Resource> typePriorityList;
- private Map<UriRef, Object> typeHandlerMap =
Collections.synchronizedMap(
+ private final Map<UriRef, Object> typeHandlerMap =
Collections.synchronizedMap(
new HashMap<UriRef, Object>());
@@ -144,10 +144,12 @@ public class TypeHandlerDiscoveryImpl im
private void unregisterTypeHandler(Object component) {
Iterator<UriRef> keys = typeHandlerMap.keySet().iterator();
Set<UriRef> toRemove = new
HashSet<UriRef>(typeHandlerMap.size());
- while (keys.hasNext()) {
- UriRef uriRef = keys.next();
- if(typeHandlerMap.get(uriRef)==component) {
- toRemove.add(uriRef);
+ synchronized(typeHandlerMap) {
+ while (keys.hasNext()) {
+ UriRef uriRef = keys.next();
+ if(typeHandlerMap.get(uriRef)==component) {
+ toRemove.add(uriRef);
+ }
}
}
keys = toRemove.iterator();
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
Tue Aug 24 15:39:53 2010
@@ -37,7 +37,6 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.ext.MessageBodyWriter;
@@ -90,7 +89,7 @@ public class GenericGraphNodeMBW impleme
private static final Logger logger =
LoggerFactory.getLogger(GenericGraphNodeMBW.class);
private UriInfo uriInfo = null;
private HttpHeaders headers = null;
- private Set<UserContextProvider> contextProviders =
+ private final Set<UserContextProvider> contextProviders =
Collections.synchronizedSet(new
HashSet<UserContextProvider>());
private DocumentBuilder documentBuilder;
private TransformerFactory transformerFactory =
TransformerFactory.newInstance();
@@ -208,10 +207,12 @@ public class GenericGraphNodeMBW impleme
private GraphNode getUserContext() {
GraphNode contextNode = new GraphNode(new BNode(), new
SimpleMGraph());
- Iterator<UserContextProvider> providersIter =
contextProviders.iterator();
- while (providersIter.hasNext()) {
- UserContextProvider userContextProvider =
providersIter.next();
- contextNode =
userContextProvider.addUserContext(contextNode);
+ synchronized(contextProviders) {
+ Iterator<UserContextProvider> providersIter =
contextProviders.iterator();
+ while (providersIter.hasNext()) {
+ UserContextProvider userContextProvider =
providersIter.next();
+ contextNode =
userContextProvider.addUserContext(contextNode);
+ }
}
return contextNode;
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
Tue Aug 24 15:39:53 2010
@@ -46,7 +46,6 @@ import org.osgi.service.component.Compon
import org.apache.clerezza.platform.typerendering.ontologies.TYPERENDERING;
import org.apache.clerezza.rdf.core.BNode;
import org.apache.clerezza.rdf.core.LiteralFactory;
-import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.Resource;
import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.TypedLiteral;
@@ -93,7 +92,7 @@ public class RenderletRendererFactoryImp
private Map<String, Renderlet> renderletMap = new HashMap<String,
Renderlet>();
private ComponentContext componentContext;
private ReentrantReadWriteLock configLock = new
ReentrantReadWriteLock();
- private Set<ServiceReference> renderletRefStore =
+ private final Set<ServiceReference> renderletRefStore =
Collections.synchronizedSet(new
HashSet<ServiceReference>());
List<Resource> rdfTypePrioList;
@@ -324,8 +323,10 @@ public class RenderletRendererFactoryImp
}
private void registerRenderletsFromStore() {
- for (ServiceReference renderletRef : renderletRefStore) {
- registerRenderletService(renderletRef);
+ synchronized(renderletRefStore) {
+ for (ServiceReference renderletRef : renderletRefStore)
{
+ registerRenderletService(renderletRef);
+ }
}
renderletRefStore.clear();
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/access/TcManager.java
Tue Aug 24 15:39:53 2010
@@ -43,7 +43,6 @@ import org.apache.clerezza.rdf.core.MGra
import org.apache.clerezza.rdf.core.TripleCollection;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.access.security.TcAccessController;
-import org.apache.clerezza.rdf.core.access.security.TcAccessController;
import org.apache.clerezza.rdf.core.sparql.query.AskQuery;
import org.apache.clerezza.rdf.core.sparql.query.ConstructQuery;
import org.apache.clerezza.rdf.core.sparql.query.DescribeQuery;
@@ -114,7 +113,7 @@ public class TcManager implements TcProv
* A store that keeps <code>WeightedTcProvider</code>S in case the
* componentContext is null. Used in activate().
*/
- private Set<WeightedTcProvider> providerStore =
+ private final Set<WeightedTcProvider> providerStore =
Collections.synchronizedSet(new
HashSet<WeightedTcProvider>());
/**
@@ -163,10 +162,12 @@ public class TcManager implements TcProv
protected void activate(final ComponentContext componentContext) {
this.componentContext = componentContext;
- Iterator<WeightedTcProvider> it = providerStore.iterator();
- while (it.hasNext()) {
- WeightedTcProvider provider = it.next();
- updateLockableMGraphCache(provider, true);
+ synchronized(providerStore) {
+ Iterator<WeightedTcProvider> it =
providerStore.iterator();
+ while (it.hasNext()) {
+ WeightedTcProvider provider = it.next();
+ updateLockableMGraphCache(provider, true);
+ }
}
providerStore.clear();
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/AbstractTripleCollection.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/AbstractTripleCollection.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/AbstractTripleCollection.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/AbstractTripleCollection.java
Tue Aug 24 15:39:53 2010
@@ -46,7 +46,7 @@ public abstract class AbstractTripleColl
implements TripleCollection {
//all listeners
- private Set<ListenerConfiguration> listenerConfigs =
Collections.synchronizedSet(
+ private final Set<ListenerConfiguration> listenerConfigs =
Collections.synchronizedSet(
new HashSet<ListenerConfiguration>());
private DelayedNotificator delayedNotificator = new
DelayedNotificator();
@@ -177,9 +177,11 @@ public abstract class AbstractTripleColl
* @param type The type of modification
*/
protected void dispatchEvent(GraphEvent event) {
- for (ListenerConfiguration config : listenerConfigs) {
- if (config.getFilter().match(event.getTriple())) {
-
delayedNotificator.sendEventToListener(config.getListener(), event);
+ synchronized(listenerConfigs) {
+ for (ListenerConfiguration config : listenerConfigs) {
+ if
(config.getFilter().match(event.getTriple())) {
+
delayedNotificator.sendEventToListener(config.getListener(), event);
+ }
}
}
}
@@ -200,11 +202,13 @@ public abstract class AbstractTripleColl
@Override
public void removeGraphListener(GraphListener listener) {
- Iterator<ListenerConfiguration> iter =
listenerConfigs.iterator();
- while (iter.hasNext()) {
- ListenerConfiguration listenerConfig = iter.next();
- if (listenerConfig.getListener().equals(listener)) {
- iter.remove();
+ synchronized(listenerConfigs) {
+ Iterator<ListenerConfiguration> iter =
listenerConfigs.iterator();
+ while (iter.hasNext()) {
+ ListenerConfiguration listenerConfig =
iter.next();
+ if
(listenerConfig.getListener().equals(listener)) {
+ iter.remove();
+ }
}
}
delayedNotificator.removeDelayedListener(listener);
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleTripleCollection.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleTripleCollection.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleTripleCollection.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleTripleCollection.java
Tue Aug 24 15:39:53 2010
@@ -90,7 +90,7 @@ class SimpleTripleCollection extends Abs
}
}
- private Set<SoftReference<SimpleIterator>> iterators =
+ private final Set<SoftReference<SimpleIterator>> iterators =
Collections.synchronizedSet(new
HashSet<SoftReference<SimpleIterator>>());
/**
@@ -185,15 +185,17 @@ class SimpleTripleCollection extends Abs
return;
}
Set<SoftReference> oldReferences = new HashSet<SoftReference>();
- for (SoftReference<SimpleTripleCollection.SimpleIterator>
softReference : iterators) {
- SimpleIterator simpleIterator = softReference.get();
- if (simpleIterator == null) {
- oldReferences.add(softReference);
- continue;
+ synchronized(iterators) {
+ for
(SoftReference<SimpleTripleCollection.SimpleIterator> softReference :
iterators) {
+ SimpleIterator simpleIterator =
softReference.get();
+ if (simpleIterator == null) {
+ oldReferences.add(softReference);
+ continue;
+ }
+ if (simpleIterator != caller) {
+ simpleIterator.invalidate();
+ }
}
- if (simpleIterator != caller) {
- simpleIterator.invalidate();
- }
}
iterators.removeAll(oldReferences);
}
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.enrichment/src/main/java/org/apache/clerezza/rdf/enrichment/EnrichmentTriples.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.enrichment/src/main/java/org/apache/clerezza/rdf/enrichment/EnrichmentTriples.java?rev=988601&r1=988600&r2=988601&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.enrichment/src/main/java/org/apache/clerezza/rdf/enrichment/EnrichmentTriples.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.enrichment/src/main/java/org/apache/clerezza/rdf/enrichment/EnrichmentTriples.java
Tue Aug 24 15:39:53 2010
@@ -40,7 +40,7 @@ import org.apache.clerezza.utils.Iterato
public class EnrichmentTriples extends AbstractMGraph {
private TripleCollection base;
- private Collection<Enricher> enrichers;
+ private final Collection<Enricher> enrichers;
public EnrichmentTriples(TripleCollection base, Collection<Enricher>
enrichers) {
this.base = base;
@@ -52,13 +52,14 @@ public class EnrichmentTriples extends A
UriRef predicate, Resource object) {
Collection<Iterator<Triple>> iteratorCollection =
new
ArrayList<Iterator<Triple>>(enrichers.size());
+ synchronized(enrichers) {
+ for (Enricher enricher : enrichers) {
+ if (((subject == null) ||
enricher.getSubjectFilter().accept(subject, base)) &&
+ ((predicate == null) ||
enricher.getPredicateFilter().accept(predicate, base)) &&
+ ((object == null) ||
enricher.getObjectFilter().accept(object, base))) {
+
iteratorCollection.add(enricher.filter(subject, predicate, object, base));
- for (Enricher enricher : enrichers) {
- if (((subject == null) ||
enricher.getSubjectFilter().accept(subject, base)) &&
- ((predicate == null) ||
enricher.getPredicateFilter().accept(predicate, base)) &&
- ((object == null) ||
enricher.getObjectFilter().accept(object, base))) {
- iteratorCollection.add(enricher.filter(subject,
predicate, object, base));
-
+ }
}
}
return new
IteratorMerger<Triple>(iteratorCollection.iterator());
@@ -67,8 +68,10 @@ public class EnrichmentTriples extends A
@Override
public int size() {
int totalSize = 0;
- for (Enricher enricher : enrichers) {
- totalSize += enricher.providedTriplesCount(base);
+ synchronized(enrichers) {
+ for (Enricher enricher : enrichers) {
+ totalSize +=
enricher.providedTriplesCount(base);
+ }
}
return totalSize;
}