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/05/10 20:34:40 UTC

svn commit: r1336827 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql: SystemARQ.java graph/GraphSPARQLService.java graph/GraphWrapper.java

Author: andy
Date: Thu May 10 18:34:40 2012
New Revision: 1336827

URL: http://svn.apache.org/viewvc?rev=1336827&view=rev
Log:
Bug fix : was failing to sync() complex arrangements of graphs.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphSPARQLService.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphWrapper.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java?rev=1336827&r1=1336826&r2=1336827&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/SystemARQ.java Thu May 10 18:34:40 2012
@@ -27,9 +27,12 @@ import org.openjena.atlas.lib.Sync ;
 
 import com.hp.hpl.jena.graph.Graph ;
 import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.compose.Polyadic ;
 import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.reasoner.InfGraph ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.graph.GraphWrapper ;
 import com.hp.hpl.jena.sparql.mgt.SystemInfo ;
 
 public class SystemARQ
@@ -40,10 +43,27 @@ public class SystemARQ
         sync(model.getGraph()) ;
     }
     
-    /** Sync a if provided. Do nothing if not TDB-backed. */
+    /** Sync if provided. Do nothing if not. */
     public static void sync(Graph graph)
     {
-        syncObject(graph) ;
+        syncGraph(graph) ;
+    }
+    
+    private static void syncGraph(Graph graph)
+    {
+        // "Temporary" hack.  Graph ought to implement sync and casade it down.
+        if ( graph instanceof InfGraph )
+            syncGraph(((InfGraph)graph).getRawGraph()) ;
+        else if ( graph instanceof Polyadic ) // MultiUnion
+            // Only the base graph is updatable.
+            syncGraph(((Polyadic)graph).getBaseGraph()) ;
+        else if ( graph instanceof GraphWrapper )
+            syncGraph(((GraphWrapper)graph).get()) ;
+//        else if ( graph instanceof WrappedGraph )   
+//            // Does not expose the WrappedGraph : checking, no subclass needs a sync().
+//            syncGraph(((WrappedGraph)graph).get()) ;
+        else
+            syncObject(graph) ;
     }
 
     /** Sync a Dataset, if underlying storage provides sync. */

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphSPARQLService.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphSPARQLService.java?rev=1336827&r1=1336826&r2=1336827&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphSPARQLService.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphSPARQLService.java Thu May 10 18:34:40 2012
@@ -32,7 +32,7 @@ import com.hp.hpl.jena.sparql.core.Basic
 import com.hp.hpl.jena.sparql.core.Var ;
 import com.hp.hpl.jena.util.iterator.ExtendedIterator ;
 
-/** This class provides the Jena Graph interface to a remove SPARQL endpoint.
+/** This class provides the Jena Graph interface to a remote SPARQL endpoint.
  *  Efficiency not guaranteed. */
 
 public class GraphSPARQLService extends GraphBase implements Graph

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphWrapper.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphWrapper.java?rev=1336827&r1=1336826&r2=1336827&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphWrapper.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/GraphWrapper.java Thu May 10 18:34:40 2012
@@ -32,7 +32,7 @@ public class GraphWrapper implements Gra
 
     public GraphWrapper(Graph graph) { this.graph = graph ; }
     
-    protected Graph get() { return graph ; }
+    public Graph get() { return graph ; }
     
     @Override
     public void add(Triple t) throws AddDeniedException