You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/01/22 21:58:54 UTC

svn commit: r1234604 - in /incubator/jena/Jena2/ARQ/trunk/src/main/java: com/hp/hpl/jena/sparql/ com/hp/hpl/jena/sparql/modify/ org/openjena/atlas/iterator/

Author: andy
Date: Sun Jan 22 20:58:53 2012
New Revision: 1234604

URL: http://svn.apache.org/viewvc?rev=1234604&view=rev
Log:
Ensure the context in an update includes dataset settings.
Add a "make a safe iterator" to Iter.

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateEngineWorker.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateProcessorBase.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/iterator/Iter.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java?rev=1234604&r1=1234603&r2=1234604&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java Sun Jan 22 20:58:53 2012
@@ -22,6 +22,7 @@ import java.util.ArrayList ;
 import java.util.Iterator ;
 import java.util.List ;
 
+import org.openjena.atlas.iterator.Iter ;
 import org.openjena.atlas.lib.Sync ;
 
 import com.hp.hpl.jena.graph.Graph ;
@@ -62,7 +63,7 @@ public class SystemARQ
         else
         {
             // Go through each graph.
-            Iterator<Node> iter = dataset.listGraphNodes() ;
+            Iterator<Node> iter = Iter.iterator(dataset.listGraphNodes()) ;
             for ( ; iter.hasNext() ; )
             {
                 Node n = iter.next();

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateEngineWorker.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateEngineWorker.java?rev=1234604&r1=1234603&r2=1234604&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateEngineWorker.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateEngineWorker.java Sun Jan 22 20:58:53 2012
@@ -521,6 +521,7 @@ public class UpdateEngineWorker implemen
     protected static Iterator<Binding> evalBindings(Query query, DatasetGraph dsg, Binding initialBinding, Context context)
     {
         // SET UP CONTEXT
+        // The UpdateProcessorBase already copied the context and made it safe ... but that's going to happen again :-(
         
         Iterator<Binding> toReturn ;
         

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateProcessorBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateProcessorBase.java?rev=1234604&r1=1234603&r2=1234604&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateProcessorBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/UpdateProcessorBase.java Sun Jan 22 20:58:53 2012
@@ -18,7 +18,6 @@
 
 package com.hp.hpl.jena.sparql.modify;
 
-import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.query.QuerySolution ;
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.engine.binding.BindingFactory ;
@@ -46,10 +45,7 @@ public class UpdateProcessorBase impleme
     {
         this.request = request ;
         this.graphStore = graphStore ;
-        if ( context == null )
-            context = ARQ.getContext().copy() ;
-        
-        this.context = context ;
+        this.context = Context.setupContext(context, graphStore) ;
         this.factory = factory ;
     }
 

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/iterator/Iter.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/iterator/Iter.java?rev=1234604&r1=1234603&r2=1234604&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/iterator/Iter.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/org/openjena/atlas/iterator/Iter.java Sun Jan 22 20:58:53 2012
@@ -78,6 +78,14 @@ public class Iter<T> implements Iterable
         return reduce(stream, action) ;
     }
 
+    /** Create another iterator without risk of concurrent modification exceptions.
+     *  This materializes the input iterator.  
+     */
+    public static <T> Iterator<T> iterator(Iterator<? extends T> iterator)
+    {
+        return Iter.toList(iterator).iterator() ;
+    }
+    
     public interface Folder<X,Y> { Y eval(Y acc, X arg) ; }
     
     public static <T, R> R foldLeft(Iterable<? extends T> stream, Folder<T, R> function, R value)