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()]));
                }
        }
 


Reply via email to