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/11/26 17:55:07 UTC
[2/3] jena git commit: Use transactions when loading graphs if
available.
Use transactions when loading graphs if available.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e2751e38
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e2751e38
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e2751e38
Branch: refs/heads/master
Commit: e2751e3846c7895def5434a8e75774ba786735e3
Parents: 08df976
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Nov 26 15:34:39 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Nov 26 16:11:41 2015 +0000
----------------------------------------------------------------------
.../apache/jena/sparql/util/DatasetUtils.java | 24 +++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e2751e38/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
index f25c669..fa9e089 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
@@ -27,15 +27,17 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.query.DatasetFactory ;
+import org.apache.jena.query.ReadWrite ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.system.IRIResolver ;
+import org.apache.jena.shared.JenaException ;
import org.apache.jena.sparql.core.DatasetDescription ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.DatasetGraphFactory ;
import org.apache.jena.sparql.graph.GraphFactory ;
-/** Internal Dataset/DataSource factory + graph equivalents. */
+/** Internal Dataset factory + graph equivalents. */
public class DatasetUtils
{
@@ -81,6 +83,26 @@ public class DatasetUtils
/** add graphs into an existing DataSource */
public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI)
{
+ boolean transactionWrapper = ds.supportsTransactions() && ! ds.isInTransaction() ;
+ if ( ! transactionWrapper )
+ return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
+
+ // TODO Replace with Txn.executeWrite when Txn code ready.
+ ds.begin(ReadWrite.WRITE) ;
+ try {
+ return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
+ } catch ( JenaException ex) {
+ ds.abort();
+ throw ex ;
+ }
+ finally {
+ if ( ds.isInTransaction() )
+ ds.commit() ;
+ ds.end();
+ }
+ }
+
+ private static Dataset addInGraphsWorker(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI) {
if ( ds.getDefaultModel() == null )
// Merge into background graph
ds.setDefaultModel(GraphFactory.makeDefaultModel()) ;