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();
+ }
}
/**