You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by aj...@apache.org on 2018/01/06 15:17:48 UTC
[24/44] jena git commit: Cleanup in TIM
Cleanup in TIM
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0653c2c5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0653c2c5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0653c2c5
Branch: refs/heads/master
Commit: 0653c2c567e35a471a20247bae75633e347627ce
Parents: 08a559b
Author: ajs6f <aj...@apache.org>
Authored: Fri Dec 29 10:53:27 2017 -0500
Committer: ajs6f <aj...@apache.org>
Committed: Fri Jan 5 09:32:55 2018 -0500
----------------------------------------------------------------------
.../jena/query/util/DatasetCollector.java | 7 ++-
.../sparql/core/mem/DatasetGraphInMemory.java | 47 ++++++--------------
2 files changed, 19 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0653c2c5/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
index 492e06f..b70026a 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/util/DatasetCollector.java
@@ -35,7 +35,7 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
@Override
public Supplier<Dataset> supplier() {
- return DatasetFactory::createGeneral;
+ return DatasetFactory::createTxnMem;
}
public ConcurrentDatasetCollector concurrent() {
@@ -77,7 +77,10 @@ public abstract class DatasetCollector implements UnorderedIdentityFinishCollect
return (d1, d2) -> {
d1.getDefaultModel().add(d2.getDefaultModel());
d2.listNames().forEachRemaining(
- name -> d1.replaceNamedModel(name, d1.getNamedModel(name).union(d2.getNamedModel(name))));
+ name -> {
+ Model union = d1.getNamedModel(name).union(d2.getNamedModel(name));
+ d1.replaceNamedModel(name, union);
+ });
};
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/0653c2c5/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 44dd8db..0a48161 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
@@ -20,10 +20,11 @@ package org.apache.jena.sparql.core.mem;
import static java.lang.ThreadLocal.withInitial;
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.apache.jena.sparql.util.graph.GraphUtils.triples2quadsDftGraph ;
+import static org.apache.jena.system.Txn.calculateRead;
+import static org.apache.jena.system.Txn.executeWrite;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.Iterator;
@@ -33,9 +34,7 @@ import java.util.function.Consumer;
import java.util.function.Supplier;
import org.apache.jena.atlas.lib.InternalErrorException ;
-import org.apache.jena.graph.Graph;
-import org.apache.jena.graph.Node;
-import org.apache.jena.graph.Triple;
+import org.apache.jena.graph.*;
import org.apache.jena.query.ReadWrite;
import org.apache.jena.query.TxnType;
import org.apache.jena.shared.Lock;
@@ -315,15 +314,7 @@ 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();
+ return isInTransaction() ? source.get() : calculateRead(this, source::get);
}
@Override
@@ -390,33 +381,23 @@ public class DatasetGraphInMemory extends DatasetGraphTriplesQuads implements Tr
* @param payload
*/
private <T> void mutate(final Consumer<T> mutator, final T payload) {
- if (!isInTransaction()) {
- begin(WRITE);
- try {
- mutator.accept(payload);
- commit();
- } finally {
- end();
- }
- return ;
- }
- if ( !transactionMode().equals(WRITE) ) {
- TxnType mode = transactionType.get();
- switch(mode) {
- case WRITE :
+ if (isInTransaction()) {
+ if (!transactionMode().equals(WRITE)) {
+ TxnType mode = transactionType.get();
+ switch (mode) {
+ case WRITE:
break;
- case READ :
+ case READ:
throw new JenaTransactionException("Tried to write inside a READ transaction!");
- case READ_COMMITTED_PROMOTE :
- case READ_PROMOTE :
- {
+ case READ_COMMITTED_PROMOTE:
+ case READ_PROMOTE:
boolean readCommitted = (mode == TxnType.READ_COMMITTED_PROMOTE);
_promote(readCommitted);
break;
}
}
- }
- mutator.accept(payload);
+ mutator.accept(payload);
+ } else executeWrite(this, () -> mutator.accept(payload));
}
/**