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 2018/02/11 20:19:24 UTC

[2/4] jena git commit: Fixes for transactions after JENA-1458

Fixes for transactions after JENA-1458


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

Branch: refs/heads/master
Commit: 6b9aade53585159d2937a6ac0b52a0eaf6498acb
Parents: 161c03e
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Feb 11 19:02:46 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Feb 11 19:02:46 2018 +0000

----------------------------------------------------------------------
 .../apache/jena/sparql/core/DatasetImpl.java    | 30 +++++++++++---------
 .../sparql/core/TransactionalNotSupported.java  |  1 -
 jena-cmds/src/main/java/arq/query.java          |  2 +-
 3 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
index dfb8262..3ee9228 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetImpl.java
@@ -42,9 +42,9 @@ import org.apache.jena.sparql.util.NodeUtils ;
 
 public class DatasetImpl implements Dataset 
 {
-    protected DatasetGraph dsg = null ;
+    protected final DatasetGraph dsg;
     // Allow for an external transactional. 
-    private Transactional transactional = null ;
+    private final Transactional transactional;
 
     /** Wrap an existing DatasetGraph */
     public static Dataset wrap(DatasetGraph datasetGraph) {
@@ -52,7 +52,7 @@ public class DatasetImpl implements Dataset
     }
     
     protected DatasetImpl(DatasetGraph dsg) {
-        this(dsg,  (dsg.supportsTransactions() ? dsg : null)) ; 
+        this(dsg,  (dsg.supportsTransactions() ? dsg : new TransactionalNotSupported())) ; 
     }
 
     protected DatasetImpl(DatasetGraph dsg, Transactional transactional) {
@@ -97,6 +97,16 @@ public class DatasetImpl implements Dataset
     }
     
     @Override
+    public boolean supportsTransactions() {
+        return dsg.supportsTransactions();
+    }
+
+    @Override
+    public boolean supportsTransactionAbort() {
+        return dsg.supportsTransactionAbort();
+    }
+
+    @Override
     public void begin() {
         checkTransactional();
         transactional.begin();
@@ -116,33 +126,25 @@ public class DatasetImpl implements Dataset
 
     @Override
     public boolean promote() {
+        checkTransactional();
         return transactional.promote();
     }
 
     @Override
     public ReadWrite transactionMode() {
+        checkTransactional();
         return transactional.transactionMode();
     }
 
     @Override
     public TxnType transactionType() {
+        checkTransactional();
         return transactional.transactionType();
     }
 
-    @Override
-    public boolean supportsTransactions() {
-        return true;
-    }
-
-    @Override
-    public boolean supportsTransactionAbort() {
-        return false;
-    }
-    
     /** Say whether a transaction is active */ 
     @Override
     public boolean isInTransaction() {
-        checkTransactional();
         return transactional != null && transactional.isInTransaction();
     }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
index f2ef1a0..1d3d959 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/TransactionalNotSupported.java
@@ -89,7 +89,6 @@ public class TransactionalNotSupported implements Transactional
     @Override public TxnType transactionType()
     { throw new UnsupportedOperationException("Transactional.transactionType") ; }
 
-
     @Override
     public void end()
     { throw new UnsupportedOperationException("Transactional.end") ; }

http://git-wip-us.apache.org/repos/asf/jena/blob/6b9aade5/jena-cmds/src/main/java/arq/query.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/query.java b/jena-cmds/src/main/java/arq/query.java
index ceaa761..556d7f8 100644
--- a/jena-cmds/src/main/java/arq/query.java
+++ b/jena-cmds/src/main/java/arq/query.java
@@ -217,7 +217,7 @@ public class query extends CmdARQ
                 System.err.println("Dataset not specified in query nor provided on command line.");
                 throw new TerminationException(1);
             }
-            Transactional transactional = (dataset != null && dataset.supportsTransactionAbort()) ? dataset : new TransactionalNull() ;
+            Transactional transactional = (dataset != null && dataset.supportsTransactions()) ? dataset : new TransactionalNull() ;
             Txn.executeRead(transactional, ()->{
                 modTime.startTimer() ;
                 try ( QueryExecution qe = QueryExecutionFactory.create(query, dataset) ) {