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 2015/12/09 19:25:21 UTC

[1/4] jena git commit: Logging warning when transaction is ended without commiting

Repository: jena
Updated Branches:
  refs/heads/master c4a6ce750 -> 66afccc20


Logging warning when transaction is ended without commiting


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/53975ed3
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/53975ed3
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/53975ed3

Branch: refs/heads/master
Commit: 53975ed362e27c88cea7326789fad5c1d009e98e
Parents: c1a779d
Author: ajs6f <aj...@virginia.edu>
Authored: Tue Dec 8 11:53:25 2015 -0500
Committer: ajs6f <aj...@virginia.edu>
Committed: Tue Dec 8 11:53:25 2015 -0500

----------------------------------------------------------------------
 .../sparql/core/mem/DatasetGraphInMemory.java     | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/53975ed3/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
index 92c79e9..7b73891 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
@@ -23,6 +23,7 @@ import static org.apache.jena.graph.Node.ANY;
 import static org.apache.jena.query.ReadWrite.READ;
 import static org.apache.jena.query.ReadWrite.WRITE;
 import static org.apache.jena.sparql.core.Quad.isUnionGraph;
+import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Iterator;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -41,6 +42,7 @@ import org.apache.jena.sparql.core.DatasetGraphTriplesQuads;
 import org.apache.jena.sparql.core.DatasetPrefixStorage;
 import org.apache.jena.sparql.core.Quad;
 import org.apache.jena.sparql.core.Transactional;
+import org.slf4j.Logger;
 
 /**
  * A {@link DatasetGraph} backed by an {@link QuadTable}. By default, this is a {@link HexTable} designed for high-speed
@@ -49,6 +51,8 @@ import org.apache.jena.sparql.core.Transactional;
  */
 public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Transactional {
 
+    private static final Logger log = getLogger(DatasetGraphInMemory.class);
+    
 	private final DatasetPrefixStorage prefixes = new DatasetPrefixStorageInMemory();
 
 	private final Lock writeLock = new LockMRPlusSW();
@@ -103,11 +107,6 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
 		return defaultGraph;
 	}
 
-	@Override
-	public Lock getLock() {
-		return writeLock();
-	}
-
 	/**
 	 * Default constructor.
 	 */
@@ -129,7 +128,7 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
 		if (isInTransaction()) throw new JenaTransactionException("Transactions cannot be nested!");
 		transactionType(readWrite);
 		isInTransaction(true);
-		getLock().enterCriticalSection(readWrite.equals(READ)); // get the dataset write lock, if needed.
+		writeLock().enterCriticalSection(readWrite.equals(READ)); // get the dataset write lock, if needed.
 		commitLock().readLock().lock(); // if a commit is proceeding, wait so that we see a coherent index state
 		try {
 			quadsIndex().begin(readWrite);
@@ -149,7 +148,8 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
 		} finally {
 			commitLock().writeLock().unlock();
 		}
-		end();
+        isInTransaction.remove();
+		writeLock().leaveCriticalSection();
 	}
 
 	@Override
@@ -161,17 +161,17 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
 	@Override
 	public void close() {
 		if (isInTransaction()) abort();
-
 	}
 
 	@Override
 	public void end() {
         if (isInTransaction()) {
+            log.warn("Ending transaction without commit!");
             quadsIndex().end();
             defaultGraph().end();
             isInTransaction.remove();
             transactionType.remove();
-            getLock().leaveCriticalSection();
+            writeLock().leaveCriticalSection();
         }
 	}
 


[4/4] jena git commit: Refine warning message. Consistent white space.

Posted by an...@apache.org.
Refine warning message. Consistent white space.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/66afccc2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/66afccc2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/66afccc2

Branch: refs/heads/master
Commit: 66afccc2004b24359a47b4665e37957a5306a189
Parents: cfdce6b
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Dec 9 18:25:02 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Dec 9 18:25:02 2015 +0000

----------------------------------------------------------------------
 .../sparql/core/mem/DatasetGraphInMemory.java   | 499 ++++++++++---------
 1 file changed, 250 insertions(+), 249 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/66afccc2/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
index 1d6e645..e5585b4 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
@@ -52,121 +52,122 @@ import org.slf4j.Logger;
 public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Transactional {
 
     private static final Logger log = getLogger(DatasetGraphInMemory.class);
-    
-	private final DatasetPrefixStorage prefixes = new DatasetPrefixStorageInMemory();
-
-	private final Lock writeLock = new LockMRPlusSW();
-
-	private Lock writeLock() {
-		return writeLock;
-	}
-
-	private final ReentrantReadWriteLock commitLock = new ReentrantReadWriteLock(true);
-
-	/**
-	 * Commits must be atomic, and because a thread that is committing alters the various indexes one after another, we
-	 * lock out {@link #begin(ReadWrite)} while {@link #commit()} is executing.
-	 */
-	private ReentrantReadWriteLock commitLock() {
-		return commitLock;
-	}
-
-	private final ThreadLocal<Boolean> isInTransaction = withInitial(() -> false);
-
-	@Override
-	public boolean isInTransaction() {
-		return isInTransaction.get();
-	}
-
-	protected void isInTransaction(final boolean b) {
-		isInTransaction.set(b);
-	}
-
-	private final ThreadLocal<ReadWrite> transactionType = withInitial(() -> null);
-
-	/**
-	 * @return the type of transaction in progress
-	 */
-	public ReadWrite transactionType() {
-		return transactionType.get();
-	}
-
-	protected void transactionType(final ReadWrite readWrite) {
-		transactionType.set(readWrite);
-	}
-
-	private final QuadTable quadsIndex;
-
-	private QuadTable quadsIndex() {
-		return quadsIndex;
-	}
-
-	private final TripleTable defaultGraph;
-
-	private TripleTable defaultGraph() {
-		return defaultGraph;
-	}
-
-	/**
-	 * Default constructor.
-	 */
-	public DatasetGraphInMemory() {
-		this(new HexTable(), new TriTable());
-	}
-
-	/**
-	 * @param i a table in which to store quads
-	 * @param t a table in which to store triples
-	 */
-	public DatasetGraphInMemory(final QuadTable i, final TripleTable t) {
-		this.quadsIndex = i;
-		this.defaultGraph = t;
-	}
-
-	@Override
-	public void begin(final ReadWrite readWrite) {
-		if (isInTransaction()) throw new JenaTransactionException("Transactions cannot be nested!");
-		transactionType(readWrite);
-		isInTransaction(true);
-		writeLock().enterCriticalSection(readWrite.equals(READ)); // get the dataset write lock, if needed.
-		commitLock().readLock().lock(); // if a commit is proceeding, wait so that we see a coherent index state
-		try {
-			quadsIndex().begin(readWrite);
-			defaultGraph().begin(readWrite);
-		} finally {
-			commitLock().readLock().unlock();
-		}
-	}
-
-	@Override
-	public void commit() {
-		if (!isInTransaction()) throw new JenaTransactionException("Tried to commit outside a transaction!");
-		commitLock().writeLock().lock();
-		try {
-			quadsIndex().commit();
-			defaultGraph().commit();
-		} finally {
-			commitLock().writeLock().unlock();
-		}
+
+    private final DatasetPrefixStorage prefixes = new DatasetPrefixStorageInMemory();
+
+    private final Lock writeLock = new LockMRPlusSW();
+
+    private Lock writeLock() {
+        return writeLock;
+    }
+
+    private final ReentrantReadWriteLock commitLock = new ReentrantReadWriteLock(true);
+
+    /**
+     * Commits must be atomic, and because a thread that is committing alters the various indexes one after another, we
+     * lock out {@link #begin(ReadWrite)} while {@link #commit()} is executing.
+     */
+    private ReentrantReadWriteLock commitLock() {
+        return commitLock;
+    }
+
+    private final ThreadLocal<Boolean> isInTransaction = withInitial(() -> false);
+
+    @Override
+    public boolean isInTransaction() {
+        return isInTransaction.get();
+    }
+
+    protected void isInTransaction(final boolean b) {
+        isInTransaction.set(b);
+    }
+
+    private final ThreadLocal<ReadWrite> transactionType = withInitial(() -> null);
+
+    /**
+     * @return the type of transaction in progress
+     */
+    public ReadWrite transactionType() {
+        return transactionType.get();
+    }
+
+    protected void transactionType(final ReadWrite readWrite) {
+        transactionType.set(readWrite);
+    }
+
+    private final QuadTable quadsIndex;
+
+    private QuadTable quadsIndex() {
+        return quadsIndex;
+    }
+
+    private final TripleTable defaultGraph;
+
+    private TripleTable defaultGraph() {
+        return defaultGraph;
+    }
+
+    /**
+     * Default constructor.
+     */
+    public DatasetGraphInMemory() {
+        this(new HexTable(), new TriTable());
+    }
+
+    /**
+     * @param i a table in which to store quads
+     * @param t a table in which to store triples
+     */
+    public DatasetGraphInMemory(final QuadTable i, final TripleTable t) {
+        this.quadsIndex = i;
+        this.defaultGraph = t;
+    }
+
+    @Override
+    public void begin(final ReadWrite readWrite) {
+        if (isInTransaction()) throw new JenaTransactionException("Transactions cannot be nested!");
+        transactionType(readWrite);
+        isInTransaction(true);
+        writeLock().enterCriticalSection(readWrite.equals(READ)); // get the dataset write lock, if needed.
+        commitLock().readLock().lock(); // if a commit is proceeding, wait so that we see a coherent index state
+        try {
+            quadsIndex().begin(readWrite);
+            defaultGraph().begin(readWrite);
+        } finally {
+            commitLock().readLock().unlock();
+        }
+    }
+
+    @Override
+    public void commit() {
+        if (!isInTransaction()) throw new JenaTransactionException("Tried to commit outside a transaction!");
+        commitLock().writeLock().lock();
+        try {
+            quadsIndex().commit();
+            defaultGraph().commit();
+        } finally {
+            commitLock().writeLock().unlock();
+        }
         isInTransaction.remove();
-		writeLock().leaveCriticalSection();
-	}
+        writeLock().leaveCriticalSection();
+    }
 
-	@Override
-	public void abort() {
-		if (!isInTransaction()) throw new JenaTransactionException("Tried to abort outside a transaction!");
-		end();
-	}
+    @Override
+    public void abort() {
+        if (!isInTransaction()) throw new JenaTransactionException("Tried to abort outside a transaction!");
+        end();
+    }
 
-	@Override
-	public void close() {
-		if (isInTransaction()) abort();
-	}
+    @Override
+    public void close() {
+        if (isInTransaction()) abort();
+    }
 
     @Override
     public void end() {
         if (isInTransaction()) {
-            if (transactionType().equals(WRITE)) log.warn("Ending WRITE transaction without commit!");
+            if (transactionType().equals(WRITE))
+                log.warn("end() called for WRITE transaction without commit or abort having been called");
             quadsIndex().end();
             defaultGraph().end();
             isInTransaction.remove();
@@ -175,146 +176,146 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
         }
     }
 
-	private <T> Iterator<T> access(final Supplier<Iterator<T>> source) {
-		if (!isInTransaction()) {
-			begin(READ);
-			try {
-				return source.get();
-			} finally {
-				end();
-			}
-		}
-		return source.get();
-	}
-
-	@Override
-	public Iterator<Node> listGraphNodes() {
-		return access(() -> quadsIndex().listGraphNodes().iterator());
-	}
-
-	private Iterator<Quad> quadsFinder(final Node g, final Node s, final Node p, final Node o) {
-		if (isUnionGraph(g)) return findInUnionGraph$(s, p, o);
-		return quadsIndex().find(g, s, p, o).iterator();
-	}
-
-	/**
-	 * Union graph is the merge of named graphs.
-	 */
-	// Temp - Should this be replaced by DatasetGraphBaseFind code?
-	private Iterator<Quad> findInUnionGraph$(final Node s, final Node p, final Node o) {
-		return access(() -> quadsIndex().findInUnionGraph(s, p, o).iterator());
-	}
-
-	private Iterator<Quad> triplesFinder(final Node s, final Node p, final Node o) {
-		return triples2quadsDftGraph(defaultGraph().find(s, p, o).iterator());
-	}
-
-	@Override
-	public void setDefaultGraph(final Graph g) {
-		mutate(graph -> {
-			defaultGraph().clear();
-			graph.find(ANY, ANY, ANY)
-					.forEachRemaining(t -> addToDftGraph(t.getSubject(), t.getPredicate(), t.getObject()));
-		} , g);
-	}
-
-	@Override
-	public Graph getGraph(final Node graphNode) {
-		return new GraphInMemory(this, graphNode);
-	}
-
-	@Override
-	public Graph getDefaultGraph() {
-		return getGraph(Quad.defaultGraphNodeGenerated);
-	}
-
-	private Consumer<Graph> addGraph(final Node name) {
-		return g -> g.find(ANY, ANY, ANY).forEachRemaining(t -> add(new Quad(name, t)));
-	}
-
-	private final Consumer<Graph> removeGraph = g -> g.find(ANY, ANY, ANY).forEachRemaining(g::delete);
-
-	@Override
-	public void addGraph(final Node graphName, final Graph graph) {
-		mutate(addGraph(graphName), graph);
-	}
-
-	@Override
-	public void removeGraph(final Node graphName) {
-		mutate(removeGraph, getGraph(graphName));
-	}
-
-	/**
-	 * Wrap a mutation in a WRITE transaction iff necessary.
-	 *
-	 * @param mutator
-	 * @param payload
-	 */
-	private <T> void mutate(final Consumer<T> mutator, final T payload) {
-		if (!isInTransaction()) {
-			begin(WRITE);
-			try {
-				mutator.accept(payload);
-				commit();
-			} finally {
-				end();
-			}
-		} else if (transactionType().equals(WRITE)) mutator.accept(payload);
-		else throw new JenaTransactionException("Tried to write inside a READ transaction!");
-	}
-
-	/**
-	 * @return the prefixes in use in this dataset
-	 */
-	public DatasetPrefixStorage prefixes() {
-		return prefixes;
-	}
-
-	@Override
+    private <T> Iterator<T> access(final Supplier<Iterator<T>> source) {
+        if (!isInTransaction()) {
+            begin(READ);
+            try {
+                return source.get();
+            } finally {
+                end();
+            }
+        }
+        return source.get();
+    }
+
+    @Override
+    public Iterator<Node> listGraphNodes() {
+        return access(() -> quadsIndex().listGraphNodes().iterator());
+    }
+
+    private Iterator<Quad> quadsFinder(final Node g, final Node s, final Node p, final Node o) {
+        if (isUnionGraph(g)) return findInUnionGraph$(s, p, o);
+        return quadsIndex().find(g, s, p, o).iterator();
+    }
+
+    /**
+     * Union graph is the merge of named graphs.
+     */
+    // Temp - Should this be replaced by DatasetGraphBaseFind code?
+    private Iterator<Quad> findInUnionGraph$(final Node s, final Node p, final Node o) {
+        return access(() -> quadsIndex().findInUnionGraph(s, p, o).iterator());
+    }
+
+    private Iterator<Quad> triplesFinder(final Node s, final Node p, final Node o) {
+        return triples2quadsDftGraph(defaultGraph().find(s, p, o).iterator());
+    }
+
+    @Override
+    public void setDefaultGraph(final Graph g) {
+        mutate(graph -> {
+            defaultGraph().clear();
+            graph.find(ANY, ANY, ANY)
+            .forEachRemaining(t -> addToDftGraph(t.getSubject(), t.getPredicate(), t.getObject()));
+        } , g);
+    }
+
+    @Override
+    public Graph getGraph(final Node graphNode) {
+        return new GraphInMemory(this, graphNode);
+    }
+
+    @Override
+    public Graph getDefaultGraph() {
+        return getGraph(Quad.defaultGraphNodeGenerated);
+    }
+
+    private Consumer<Graph> addGraph(final Node name) {
+        return g -> g.find(ANY, ANY, ANY).forEachRemaining(t -> add(new Quad(name, t)));
+    }
+
+    private final Consumer<Graph> removeGraph = g -> g.find(ANY, ANY, ANY).forEachRemaining(g::delete);
+
+    @Override
+    public void addGraph(final Node graphName, final Graph graph) {
+        mutate(addGraph(graphName), graph);
+    }
+
+    @Override
+    public void removeGraph(final Node graphName) {
+        mutate(removeGraph, getGraph(graphName));
+    }
+
+    /**
+     * Wrap a mutation in a WRITE transaction iff necessary.
+     *
+     * @param mutator
+     * @param payload
+     */
+    private <T> void mutate(final Consumer<T> mutator, final T payload) {
+        if (!isInTransaction()) {
+            begin(WRITE);
+            try {
+                mutator.accept(payload);
+                commit();
+            } finally {
+                end();
+            }
+        } else if (transactionType().equals(WRITE)) mutator.accept(payload);
+        else throw new JenaTransactionException("Tried to write inside a READ transaction!");
+    }
+
+    /**
+     * @return the prefixes in use in this dataset
+     */
+    public DatasetPrefixStorage prefixes() {
+        return prefixes;
+    }
+
+    @Override
     public long size() {
-	    return quadsIndex().listGraphNodes().count() ;
-	}
-	
-	@Override
-	public void clear() {
-		mutate(x -> {
-			defaultGraph().clear();
-			quadsIndex().clear();
-		} , null);
-	}
-
-	@Override
-	protected void addToDftGraph(final Node s, final Node p, final Node o) {
-		mutate(defaultGraph()::add, Triple.create(s, p, o));
-	}
-
-	@Override
-	protected void addToNamedGraph(final Node g, final Node s, final Node p, final Node o) {
-		mutate(quadsIndex()::add, Quad.create(g, s, p, o));
-	}
-
-	@Override
-	protected void deleteFromDftGraph(final Node s, final Node p, final Node o) {
-		mutate(defaultGraph()::delete, Triple.create(s, p, o));
-	}
-
-	@Override
-	protected void deleteFromNamedGraph(final Node g, final Node s, final Node p, final Node o) {
-		mutate(quadsIndex()::delete, Quad.create(g, s, p, o));
-	}
-
-	@Override
-	protected Iterator<Quad> findInDftGraph(final Node s, final Node p, final Node o) {
-		return access(() -> triplesFinder(s, p, o));
-	}
-
-	@Override
-	protected Iterator<Quad> findInSpecificNamedGraph(final Node g, final Node s, final Node p, final Node o) {
-		return access(() -> quadsFinder(g, s, p, o));
-	}
-
-	@Override
-	protected Iterator<Quad> findInAnyNamedGraphs(final Node s, final Node p, final Node o) {
-		return findInSpecificNamedGraph(ANY, s, p, o);
-	}
+        return quadsIndex().listGraphNodes().count() ;
+    }
+
+    @Override
+    public void clear() {
+        mutate(x -> {
+            defaultGraph().clear();
+            quadsIndex().clear();
+        } , null);
+    }
+
+    @Override
+    protected void addToDftGraph(final Node s, final Node p, final Node o) {
+        mutate(defaultGraph()::add, Triple.create(s, p, o));
+    }
+
+    @Override
+    protected void addToNamedGraph(final Node g, final Node s, final Node p, final Node o) {
+        mutate(quadsIndex()::add, Quad.create(g, s, p, o));
+    }
+
+    @Override
+    protected void deleteFromDftGraph(final Node s, final Node p, final Node o) {
+        mutate(defaultGraph()::delete, Triple.create(s, p, o));
+    }
+
+    @Override
+    protected void deleteFromNamedGraph(final Node g, final Node s, final Node p, final Node o) {
+        mutate(quadsIndex()::delete, Quad.create(g, s, p, o));
+    }
+
+    @Override
+    protected Iterator<Quad> findInDftGraph(final Node s, final Node p, final Node o) {
+        return access(() -> triplesFinder(s, p, o));
+    }
+
+    @Override
+    protected Iterator<Quad> findInSpecificNamedGraph(final Node g, final Node s, final Node p, final Node o) {
+        return access(() -> quadsFinder(g, s, p, o));
+    }
+
+    @Override
+    protected Iterator<Quad> findInAnyNamedGraphs(final Node s, final Node p, final Node o) {
+        return findInSpecificNamedGraph(ANY, s, p, o);
+    }
 }


[2/4] jena git commit: Checking for WRITE transaction before logging warning

Posted by an...@apache.org.
Checking for WRITE transaction before logging warning


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0a11e4a9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0a11e4a9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0a11e4a9

Branch: refs/heads/master
Commit: 0a11e4a91fcc527bd80c1773233b331b50e1c9e9
Parents: 53975ed
Author: ajs6f <aj...@virginia.edu>
Authored: Wed Dec 9 07:54:52 2015 -0500
Committer: ajs6f <aj...@virginia.edu>
Committed: Wed Dec 9 07:54:52 2015 -0500

----------------------------------------------------------------------
 .../apache/jena/sparql/core/mem/DatasetGraphInMemory.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/0a11e4a9/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
index 7b73891..1d6e645 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/mem/DatasetGraphInMemory.java
@@ -163,17 +163,17 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
 		if (isInTransaction()) abort();
 	}
 
-	@Override
-	public void end() {
+    @Override
+    public void end() {
         if (isInTransaction()) {
-            log.warn("Ending transaction without commit!");
+            if (transactionType().equals(WRITE)) log.warn("Ending WRITE transaction without commit!");
             quadsIndex().end();
             defaultGraph().end();
             isInTransaction.remove();
             transactionType.remove();
             writeLock().leaveCriticalSection();
         }
-	}
+    }
 
 	private <T> Iterator<T> access(final Supplier<Iterator<T>> source) {
 		if (!isInTransaction()) {


[3/4] jena git commit: Merge commit 'refs/pull/105/head' of github.com:apache/jena This closes #105.

Posted by an...@apache.org.
Merge commit 'refs/pull/105/head' of github.com:apache/jena
This closes #105.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/cfdce6b1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/cfdce6b1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/cfdce6b1

Branch: refs/heads/master
Commit: cfdce6b1986a3d9e425bdf778b9a0fcd741dec77
Parents: c4a6ce7 0a11e4a
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Dec 9 18:21:24 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Dec 9 18:21:24 2015 +0000

----------------------------------------------------------------------
 .../sparql/core/mem/DatasetGraphInMemory.java   | 24 ++++++++++----------
 1 file changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------