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/11/17 17:20:51 UTC

[25/34] jena git commit: JENA-1631: Use DatasetGraphMapLink transactions.

JENA-1631: Use DatasetGraphMapLink transactions.

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

Branch: refs/heads/master
Commit: ea7c22d7bdf523384a2fd134a610130299db409d
Parents: 0a1f986
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Nov 13 22:00:56 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Nov 13 22:00:56 2018 +0000

----------------------------------------------------------------------
 jena-cmds/src/main/java/arq/update.java | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ea7c22d7/jena-cmds/src/main/java/arq/update.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/update.java b/jena-cmds/src/main/java/arq/update.java
index f2f3065..a7d3727 100644
--- a/jena-cmds/src/main/java/arq/update.java
+++ b/jena-cmds/src/main/java/arq/update.java
@@ -24,14 +24,12 @@ import arq.cmdline.CmdUpdate;
 import jena.cmd.ArgDecl;
 import jena.cmd.CmdException;
 import org.apache.jena.atlas.lib.Lib;
-import org.apache.jena.query.ReadWrite;
 import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.sparql.SystemARQ;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.core.Transactional;
-import org.apache.jena.sparql.core.TransactionalNull;
 import org.apache.jena.system.Txn;
 import org.apache.jena.update.UpdateExecutionFactory;
 import org.apache.jena.update.UpdateFactory;
@@ -73,20 +71,10 @@ public class update extends CmdUpdate
         if ( requestFiles.size() == 0 && getPositional().size() == 0 )
             throw new CmdException("Nothing to do");
 
-        Transactional transactional = (graphStore.supportsTransactionAbort()) ? graphStore : new TransactionalNull();
-
-        for ( String filename : requestFiles ) {
-            try {
-                transactional.begin(ReadWrite.WRITE);
-                execOneFile(filename, graphStore);
-                transactional.commit();
-            }
-            catch (Throwable ex) { 
-                try { transactional.abort(); } catch (Exception ex2) {}
-                throw ex;
-            }
-            finally { transactional.end(); }
-        }
+        Transactional transactional = graphStore;
+        
+        for ( String filename : requestFiles )
+            Txn.executeWrite(transactional, ()->execOneFile(filename, graphStore));
 
         for ( String requestString : super.getPositional() ) {
             String requestString2 = indirect(requestString);
@@ -94,18 +82,19 @@ public class update extends CmdUpdate
         }
         
         if ( ! ( transactional instanceof DatasetGraph ) )
+            // Unlikely/impossible in Jena 3.7.0 onwards.
             SystemARQ.sync(graphStore);
 
         if ( dump )
             RDFDataMgr.write(System.out, graphStore, Lang.NQUADS);
     }
 
-    private void execOneFile(String filename, DatasetGraph store) {
+    protected void execOneFile(String filename, DatasetGraph store) {
         UpdateRequest req = UpdateFactory.read(filename, updateSyntax);
         UpdateExecutionFactory.create(req, store).execute();
     }
 
-    private void execOne(String requestString, DatasetGraph store) {
+    protected void execOne(String requestString, DatasetGraph store) {
         UpdateRequest req = UpdateFactory.create(requestString, updateSyntax);
         UpdateExecutionFactory.create(req, store).execute();
     }