You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/02/05 18:32:16 UTC
svn commit: r1442671 -
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java
Author: rvesse
Date: Tue Feb 5 17:32:16 2013
New Revision: 1442671
URL: http://svn.apache.org/viewvc?rev=1442671&view=rev
Log:
Fix UpdateAction.execute() to fallback to non-streaming when a streaming engine is not available
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java?rev=1442671&r1=1442670&r2=1442671&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java Tue Feb 5 17:32:16 2013
@@ -28,6 +28,7 @@ import com.hp.hpl.jena.query.Dataset ;
import com.hp.hpl.jena.query.QuerySolution ;
import com.hp.hpl.jena.query.Syntax ;
import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.sparql.ARQException;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.engine.binding.Binding ;
import com.hp.hpl.jena.sparql.engine.binding.BindingUtils ;
@@ -343,18 +344,23 @@ public class UpdateAction
{
UpdateProcessorStreaming uProc = UpdateExecutionFactory.createStreaming(graphStore, binding) ;
- uProc.startRequest();
- try
- {
- UpdateSink sink = uProc.getUpdateSink();
- Iter.sendToSink(request, sink); // Will call close on sink if there are no exceptions
- }
- finally
- {
- uProc.finishRequest();
+ if (uProc != null) {
+ // Use streaming update
+ uProc.startRequest();
+ try {
+ UpdateSink sink = uProc.getUpdateSink();
+ // Will call close on sink if there are no exceptions
+ Iter.sendToSink(request, sink);
+ } finally {
+ uProc.finishRequest();
+ }
+ } else {
+ // Fallback to non-streaming update
+ UpdateProcessor uProc2 = UpdateExecutionFactory.create(request, graphStore, binding);
+ if (uProc2 == null)
+ throw new ARQException("No suitable update procesors are registered/able to execute your updates");
+ uProc2.execute();
}
-
-
}
/** Execute a single SPARQL Update operation.