You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/06/03 13:56:32 UTC

[2/3] incubator-commonsrdf git commit: Don't close the stream() connection too early!

Don't close the stream() connection too early!


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/1b3924cf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/1b3924cf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/1b3924cf

Branch: refs/heads/rdf4j
Commit: 1b3924cf8357a50a4b5b0b327980d0b3a4c57444
Parents: b03ee87
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Jun 3 14:42:56 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Jun 3 14:42:56 2016 +0100

----------------------------------------------------------------------
 .../commons/rdf/api/AbstractGraphTest.java      |  3 +-
 .../rdf/rdf4j/impl/RepositoryGraphImpl.java     | 42 +++++++++++---------
 .../commons/rdf/rdf4j/MemoryGraphTest.java      | 20 +++++-----
 3 files changed, 35 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1b3924cf/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
index 67191de..e478225 100644
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractGraphTest.java
@@ -119,7 +119,7 @@ public abstract class AbstractGraphTest {
                 graph.add(bnode1, name, secretClubName);
                 graph.add(bnode2, name, companyName);
             }
-        }
+        }        
     }
 
  
@@ -247,7 +247,6 @@ public abstract class AbstractGraphTest {
 
     @Test
     public void getTriples() throws Exception {
-
         long tripleCount = graph.stream().count();
         assertTrue(tripleCount > 0);
         assertTrue(graph.stream().allMatch(t -> graph.contains(t)));

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1b3924cf/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
index 50ee2ee..837878d 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java
@@ -34,27 +34,28 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 	public RepositoryGraphImpl(Repository repository, boolean includeInferred) {
 		this.repository = repository;
 		this.includeInferred = includeInferred;
-		if (! repository.isInitialized()) {
+		if (!repository.isInitialized()) {
 			repository.initialize();
 			shouldWeShutdown = true;
 		}
-		rdf4jTermFactory = new RDF4JTermFactory(repository.getValueFactory());		
+		rdf4jTermFactory = new RDF4JTermFactory(repository.getValueFactory());
 	}
 
-	
 	@Override
 	public void close() throws Exception {
-		if (shouldWeShutdown) {		
+		if (shouldWeShutdown) {
 			repository.shutDown();
 		}
-		// else: repository was initialized outside, so we should not shut it down
+		// else: repository was initialized outside, so we should not shut it
+		// down
 	}
 
 	@Override
 	public void add(Triple triple) {
 		Statement statement = rdf4jTermFactory.asStatement(triple);
-		try (RepositoryConnection conn = getRepositoryConnection()) {			
+		try (RepositoryConnection conn = getRepositoryConnection()) {
 			conn.add(statement);
+			conn.commit();
 		}
 	}
 
@@ -65,14 +66,15 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 		Value obj = rdf4jTermFactory.asValue(object);
 		try (RepositoryConnection conn = getRepositoryConnection()) {
 			conn.add(subj, pred, obj);
+			conn.commit();
 		}
 	}
 
 	@Override
 	public boolean contains(Triple triple) {
 		Statement statement = rdf4jTermFactory.asStatement(triple);
-		try (RepositoryConnection conn = getRepositoryConnection()) {			
-			return conn.hasStatement(statement, includeInferred );
+		try (RepositoryConnection conn = getRepositoryConnection()) {
+			return conn.hasStatement(statement, includeInferred);
 		}
 	}
 
@@ -89,8 +91,9 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 	@Override
 	public void remove(Triple triple) {
 		Statement statement = rdf4jTermFactory.asStatement(triple);
-		try (RepositoryConnection conn = getRepositoryConnection()) {			
+		try (RepositoryConnection conn = getRepositoryConnection()) {
 			conn.remove(statement);
+			conn.commit();
 		}
 	}
 
@@ -101,6 +104,7 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 		Value obj = rdf4jTermFactory.asValue(object);
 		try (RepositoryConnection conn = getRepositoryConnection()) {
 			conn.remove(subj, pred, obj);
+			conn.commit();
 		}
 	}
 
@@ -108,16 +112,18 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 	public void clear() {
 		try (RepositoryConnection conn = getRepositoryConnection()) {
 			conn.clear();
+			conn.commit();
 		}
 	}
 
 	@Override
 	public long size() {
 		try (RepositoryConnection conn = getRepositoryConnection()) {
-			// FIXME: The below might contain duplicate statements across multiple contexts
+			// FIXME: The below might contain duplicate statements across
+			// multiple contexts
 			return conn.size();
 		}
-		
+
 	}
 
 	@Override
@@ -130,11 +136,11 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 		Resource subj = (Resource) rdf4jTermFactory.asValue(subject);
 		org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate);
 		Value obj = rdf4jTermFactory.asValue(object);
-		try (RepositoryConnection conn = getRepositoryConnection()) {
-			// FIXME: Will the above close too early? (e.g. when returning iterator)
-			RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj);
-			return Iterations.stream(statements).map(rdf4jTermFactory::asTriple);
-		}		
+		RepositoryConnection conn = getRepositoryConnection();
+		// FIXME: Is it OK that we don't close the connection?
+		RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj);
+		return Iterations.stream(statements).map(rdf4jTermFactory::asTriple);
+
 	}
 
 	private RepositoryConnection getRepositoryConnection() {
@@ -148,6 +154,6 @@ public class RepositoryGraphImpl implements Graph, RDF4JGraph {
 	@Override
 	public Optional<Model> asModel() {
 		return Optional.empty();
-	}	
-	
+	}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/1b3924cf/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
index 4ceb9fe..059b486 100644
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java
@@ -19,6 +19,10 @@ package org.apache.commons.rdf.rdf4j;
 
 import org.apache.commons.rdf.api.AbstractGraphTest;
 import org.apache.commons.rdf.api.RDFTermFactory;
+import org.eclipse.rdf4j.repository.Repository;
+import org.eclipse.rdf4j.repository.sail.SailRepository;
+import org.eclipse.rdf4j.sail.Sail;
+import org.eclipse.rdf4j.sail.memory.MemoryStore;
 import org.eclipse.rdf4j.sail.memory.model.MemValueFactory;
 
 public class MemoryGraphTest extends AbstractGraphTest {
@@ -28,16 +32,12 @@ public class MemoryGraphTest extends AbstractGraphTest {
 			super(new MemValueFactory());
 		}
 
-//		@Override
-//		public Graph createGraph() throws UnsupportedOperationException {
-//			MemoryStore x = new MemoryStore();
-//			x.initialize();						
-//			NotifyingSailConnection c = x.getConnection();
-//			// FIXME: This transaction does not seem to survive for long enough
-//			c.begin();
-//			SailModel model = new SailModel(x.getConnection(), false);
-//			return asRDFTermGraph(model);
-//		}
+		@Override
+		public RDF4JGraph createGraph() throws UnsupportedOperationException {
+			Sail sail = new MemoryStore();
+			Repository repository = new SailRepository(sail);
+			return asRDFTermGraph(repository);
+		}
 	}
 
 	@Override