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)