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/09/11 18:48:49 UTC

svn commit: r1383475 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine: PlanOp.java QueryExecutionBase.java iterator/QueryIteratorBase.java

Author: andy
Date: Tue Sep 11 16:48:48 2012
New Revision: 1383475

URL: http://svn.apache.org/viewvc?rev=1383475&view=rev
Log:
Remove deprecated feature (with potentially non-compliant wrong answers) of allowing a cancelled iterator to silently contiue with partial results. (JENA-93)

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/PlanOp.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/QueryExecutionBase.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/iterator/QueryIteratorBase.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/PlanOp.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/PlanOp.java?rev=1383475&r1=1383474&r2=1383475&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/PlanOp.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/PlanOp.java Tue Sep 11 16:48:48 2012
@@ -59,17 +59,17 @@ public class PlanOp extends PlanBase
         }
 
         String str = label ;
-        
+
         if ( label == null )
             str = "Plan" ;
         out.print(Plan.startMarker) ;
         out.println(str) ;
         out.incIndent() ;
-       //getOp().output(out, sCxt) ;
-       qIter.output(out, sCxt) ;
+        //getOp().output(out, sCxt) ;
+        qIter.output(out, sCxt) ;
 
-       out.print(Plan.finishMarker) ;
-       out.decIndent() ;
-       out.ensureStartOfLine() ;
+        out.print(Plan.finishMarker) ;
+        out.decIndent() ;
+        out.ensureStartOfLine() ;
     }
 }

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/QueryExecutionBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/QueryExecutionBase.java?rev=1383475&r1=1383474&r2=1383475&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/QueryExecutionBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/QueryExecutionBase.java Tue Sep 11 16:48:48 2012
@@ -32,18 +32,8 @@ import org.openjena.atlas.logging.Log ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.n3.IRIResolver ;
-import com.hp.hpl.jena.query.ARQ ;
-import com.hp.hpl.jena.query.Dataset ;
-import com.hp.hpl.jena.query.Query ;
-import com.hp.hpl.jena.query.QueryExecException ;
-import com.hp.hpl.jena.query.QueryExecution ;
-import com.hp.hpl.jena.query.QuerySolution ;
-import com.hp.hpl.jena.query.ResultSet ;
-import com.hp.hpl.jena.rdf.model.Model ;
-import com.hp.hpl.jena.rdf.model.ModelFactory ;
-import com.hp.hpl.jena.rdf.model.RDFNode ;
-import com.hp.hpl.jena.rdf.model.Resource ;
-import com.hp.hpl.jena.rdf.model.Statement ;
+import com.hp.hpl.jena.query.* ;
+import com.hp.hpl.jena.rdf.model.* ;
 import com.hp.hpl.jena.shared.PrefixMapping ;
 import com.hp.hpl.jena.sparql.ARQConstants ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
@@ -52,7 +42,6 @@ import com.hp.hpl.jena.sparql.core.descr
 import com.hp.hpl.jena.sparql.engine.binding.Binding ;
 import com.hp.hpl.jena.sparql.engine.binding.BindingRoot ;
 import com.hp.hpl.jena.sparql.engine.binding.BindingUtils ;
-import com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase ;
 import com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper ;
 import com.hp.hpl.jena.sparql.graph.GraphFactory ;
 import com.hp.hpl.jena.sparql.modify.TemplateLib ;
@@ -182,9 +171,6 @@ public class QueryExecutionBase implemen
         cancelPingback() ;
     }
 
-    @Deprecated
-    public static boolean cancelAllowDrain = false ; 
-    //public synchronized void cancel()
     @Override
     public synchronized void abort()
 	{
@@ -194,14 +180,7 @@ public class QueryExecutionBase implemen
 		{
 			// we cancel the chain of iterators, however, we do *not* close the iterators. 
 			// That happens after the cancellation is properly over.
-		    if ( cancelAllowDrain && queryIterator instanceof QueryIteratorBase )
-		    {
-		        QueryIteratorBase qIter = (QueryIteratorBase)queryIterator ;
-		        qIter.cancelAllowContinue() ;
-		    }
-		    else
-		        // Normal case - correct SPARQL
-		        queryIterator.cancel() ;
+		    queryIterator.cancel() ;
 			cancel = true ;
 		}
         cancel = true ;

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/iterator/QueryIteratorBase.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/iterator/QueryIteratorBase.java?rev=1383475&r1=1383474&r2=1383475&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/iterator/QueryIteratorBase.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/iterator/QueryIteratorBase.java Tue Sep 11 16:48:48 2012
@@ -56,7 +56,11 @@ public abstract class QueryIteratorBase 
     /** In the process of requesting a cancel, or one has been done */  
     private volatile boolean requestingCancel = false;
 
-    /* If set, any hasNext/next throws QueryAbortedException */
+    /* If set, any hasNext/next throws QueryAbortedException
+     * In normal operation, this is the same setting as requestingCancel.
+     * Non-compliant behaviour can result otherwise. 
+     * Accessed through cancelAllowContinue()
+     */
     private boolean abortIterator = false ;
     private Object cancelLock = new Object();
     
@@ -140,10 +144,9 @@ public abstract class QueryIteratorBase 
                 close() ;
                 throw new QueryCancelledException() ;
             }
+
             if ( finished )
-            {
                 throw new NoSuchElementException(Utils.className(this)) ;
-            }
             
             if ( ! hasNextBinding() )
                 throw new NoSuchElementException(Utils.className(this)) ;
@@ -208,8 +211,8 @@ public abstract class QueryIteratorBase 
     /** Cancel this iterator but allow it to continue servicing hasNext/next.
      *  Wrong answers are possible (e.g. partial ORDER BY and LIMIT).
      */
-    @Deprecated
-    public final void cancelAllowContinue()
+    
+    private final void cancelAllowContinue()
     {
         // Call requestCancel() once.
         synchronized (cancelLock)