Author: reto
Date: Mon Sep 6 14:41:39 2010
New Revision: 993044
URL: http://svn.apache.org/viewvc?rev=993044&view=rev
Log:
CLEREZZA-289: added lock in factory method
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/InfoDiscobit.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/InfoDiscobit.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/InfoDiscobit.java?rev=993044&r1=993043&r2=993044&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/InfoDiscobit.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/InfoDiscobit.java
Mon Sep 6 14:41:39 2010
@@ -19,6 +19,7 @@
package org.apache.clerezza.platform.content;
import java.util.Iterator;
+import java.util.concurrent.locks.Lock;
import org.apache.clerezza.rdf.core.Literal;
import org.apache.clerezza.rdf.core.LiteralFactory;
import org.apache.clerezza.rdf.core.Resource;
@@ -44,13 +45,19 @@ public class InfoDiscobit {
* @return an instance of InfoDiscobit or null if node is not an
InfoDiscoBit
*/
public static InfoDiscobit createInstance(GraphNode node) {
- Iterator<Resource> types = node.getObjects(RDF.type);
- while(types.hasNext()) {
- if (types.next().equals(DISCOBITS.InfoDiscoBit)){
- return new InfoDiscobit(node);
+ Lock l = node.readLock();
+ l.lock();
+ try {
+ Iterator<Resource> types = node.getObjects(RDF.type);
+ while(types.hasNext()) {
+ if
(types.next().equals(DISCOBITS.InfoDiscoBit)){
+ return new InfoDiscobit(node);
+ }
}
+ return null;
+ } finally {
+ l.unlock();
}
- return null;
}
InfoDiscobit(GraphNode infoBit) {