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) {


Reply via email to