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/02/01 15:33:52 UTC

svn commit: r1239146 - in /incubator/jena/Jena2/ARQ/trunk/src: main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java

Author: andy
Date: Wed Feb  1 14:33:51 2012
New Revision: 1239146

URL: http://svn.apache.org/viewvc?rev=1239146&view=rev
Log:
Reject INSERT DATA with literals-as-subjects.  More useful than silently ignoring later.

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java?rev=1239146&r1=1239145&r2=1239146&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/modify/request/QuadDataAcc.java Wed Feb  1 14:33:51 2012
@@ -32,16 +32,20 @@ public class QuadDataAcc extends QuadAcc
         if ( Var.isVar(getGraph()) )
             throw new QueryParseException("Variables not permitted in data quad", -1, -1) ;   
         if ( Var.isVar(t.getSubject()) || Var.isVar(t.getPredicate()) || Var.isVar(t.getObject())) 
-            throw new QueryParseException("Variables not permitted in data quad", -1, -1) ;   
+            throw new QueryParseException("Variables not permitted in data quad", -1, -1) ;  
+        if ( t.getSubject().isLiteral() )
+            throw new QueryParseException("Literals not allowed as subjects in data", -1, -1) ;
     }
     
     @Override
-    protected void check(Quad t)
+    protected void check(Quad quad)
     {
-        if ( Var.isVar(t.getGraph()) || 
-             Var.isVar(t.getSubject()) || 
-             Var.isVar(t.getPredicate()) || 
-             Var.isVar(t.getObject())) 
+        if ( Var.isVar(quad.getGraph()) || 
+             Var.isVar(quad.getSubject()) || 
+             Var.isVar(quad.getPredicate()) || 
+             Var.isVar(quad.getObject())) 
             throw new QueryParseException("Variables not permitted in data quad", -1, -1) ;   
+        if ( quad.getSubject().isLiteral() )
+            throw new QueryParseException("Literals not allowed as subjects in quad data", -1, -1) ;
     }
 }

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java?rev=1239146&r1=1239145&r2=1239146&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateBase.java Wed Feb  1 14:33:51 2012
@@ -18,7 +18,7 @@
 
 package com.hp.hpl.jena.sparql.modify;
 
-import junit.framework.TestCase ;
+import org.openjena.atlas.junit.BaseTest ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Node ;
@@ -27,7 +27,7 @@ import com.hp.hpl.jena.sparql.graph.Grap
 import com.hp.hpl.jena.update.GraphStore ;
 import com.hp.hpl.jena.update.UpdateAction ;
 
-public abstract class TestUpdateBase extends TestCase
+public abstract class TestUpdateBase extends BaseTest
 {
     protected abstract GraphStore getEmptyGraphStore() ; 
     

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java?rev=1239146&r1=1239145&r2=1239146&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/modify/TestUpdateGraph.java Wed Feb  1 14:33:51 2012
@@ -28,6 +28,7 @@ import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.Triple ;
 import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.query.QueryFactory ;
+import com.hp.hpl.jena.query.QueryParseException ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.core.Quad ;
 import com.hp.hpl.jena.sparql.core.Var ;
@@ -334,7 +335,8 @@ public abstract class TestUpdateGraph ex
                                  new Triple(s,p,o2))) ;
     }
     
-    @Test public void testUpdateBad1()      { testBad("bad-1.ru", 1) ; }
+    @Test(expected=QueryParseException.class) public void testUpdateBad1()      { testBad("bad-1.ru", 1) ; }
+    
     @Test public void testUpdateBad2()      { testBad("bad-2.ru", 1) ; }
     @Test public void testUpdateBad3()      { testBad("bad-3.ru", 0) ; }
 
@@ -390,13 +392,6 @@ public abstract class TestUpdateGraph ex
 
     @Test public void testUpdateInitialBinding3()
     {
-        // Does not affect the delete
-        Graph graph = testUpdateInitialBindingWorker(Var.alloc("FF"), o1) ;
-        assertEquals(2, graph.size()) ;
-    }
-    
-    @Test public void testUpdateInitialBinding4()
-    {
         GraphStore gStore = getEmptyGraphStore() ;
         defaultGraphData(gStore, graph1) ;
         String update = "DELETE WHERE { ?x <http://example/p> 2007 } ; INSERT { ?x <http://example/p> 1999 } WHERE {}" ;