Author: reto
Date: Mon Aug 9 14:19:50 2010
New Revision: 983653
URL: http://svn.apache.org/viewvc?rev=983653&view=rev
Log:
CLEREZZA-267: added read-locking of config-graph, reduced visibility of
constructor for RenderletDefinition
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/RenderletDefinition.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
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/RenderletDefinition.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/RenderletDefinition.java?rev=983653&r1=983652&r2=983653&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/RenderletDefinition.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/RenderletDefinition.java
Mon Aug 9 14:19:50 2010
@@ -49,7 +49,14 @@ public class RenderletDefinition {
private boolean builtIn;
private LockableMGraph configGraph;
- public RenderletDefinition(BNode renderletDefinition, LockableMGraph
configGraph) {
+ /**
+ * creates A RenderletDefinition.
+ * This constructor expects configGraph to be read-locked
+ *
+ * @param renderletDefinition
+ * @param configGraph
+ */
+ RenderletDefinition(BNode renderletDefinition, LockableMGraph
configGraph) {
this.configGraph = configGraph;
this.rederletDefinition = renderletDefinition;
renderlet = getRenderletName(renderletDefinition);
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=983653&r1=983652&r2=983653&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
Mon Aug 9 14:19:50 2010
@@ -357,17 +357,23 @@ public class RenderletRendererFactoryImp
private void createType2DefinitionMap() {
type2DefinitionMap = new HashMap<UriRef,
RenderletDefinition[]>(50);
+ Lock l = configGraph.getLock().readLock();
for (Resource prioRdfType : rdfTypePrioList) {
- Iterator<Triple> renderletDefs =
- configGraph.filter(null,
TYPERENDERING.renderedType, prioRdfType);
- ArrayList<RenderletDefinition> definitionList = new
ArrayList<RenderletDefinition>();
- while (renderletDefs.hasNext()) {
- definitionList.add(
- new RenderletDefinition((BNode)
renderletDefs.next().getSubject(),
- configGraph));
+ l.lock();
+ try {
+ Iterator<Triple> renderletDefs =
+ configGraph.filter(null,
TYPERENDERING.renderedType, prioRdfType);
+ ArrayList<RenderletDefinition> definitionList =
new ArrayList<RenderletDefinition>();
+ while (renderletDefs.hasNext()) {
+ definitionList.add(
+ new
RenderletDefinition((BNode) renderletDefs.next().getSubject(),
+ configGraph));
+ }
+ type2DefinitionMap.put((UriRef) prioRdfType,
+ definitionList.toArray(new
RenderletDefinition[definitionList.size()]));
+ } finally {
+ l.unlock();
}
- type2DefinitionMap.put((UriRef) prioRdfType,
- definitionList.toArray(new
RenderletDefinition[definitionList.size()]));
}
}