Author: reto
Date: Mon Aug  9 14:38:30 2010
New Revision: 983660

URL: http://svn.apache.org/viewvc?rev=983660&view=rev
Log:
CLEREZZA-268: added read-locking of system-graph

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.config/src/main/java/org/apache/clerezza/platform/config/PlatformConfig.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.config/src/main/java/org/apache/clerezza/platform/config/PlatformConfig.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.config/src/main/java/org/apache/clerezza/platform/config/PlatformConfig.java?rev=983660&r1=983659&r2=983660&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.config/src/main/java/org/apache/clerezza/platform/config/PlatformConfig.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.config/src/main/java/org/apache/clerezza/platform/config/PlatformConfig.java
 Mon Aug  9 14:38:30 2010
@@ -23,6 +23,7 @@ import java.security.PrivilegedAction;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
+import java.util.concurrent.locks.Lock;
 import org.apache.clerezza.platform.Constants;
 import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
 import org.apache.felix.scr.annotations.Component;
@@ -115,11 +116,17 @@ public class PlatformConfig {
        }
 
        private NonLiteral getPlatformInstanceResource() {
-               Iterator<Triple> instances = systemGraph.filter(null, RDF.type, 
PLATFORM.Instance);
-               if (!instances.hasNext()) {
-                       throw new RuntimeException("No Platform:Instance in 
system graph.");
-               }               
-               return instances.next().getSubject();
+               Lock l = systemGraph.getLock().readLock();
+               l.lock();
+               try {
+                       Iterator<Triple> instances = systemGraph.filter(null, 
RDF.type, PLATFORM.Instance);
+                       if (!instances.hasNext()) {
+                               throw new RuntimeException("No 
Platform:Instance in system graph.");
+                       }
+                       return instances.next().getSubject();
+               } finally {
+                       l.unlock();
+               }
        }
 
        /**


Reply via email to