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 2013/12/13 20:12:46 UTC

svn commit: r1550813 - in /jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena: query/ResultSetFactory.java sparql/resultset/XMLInputStAX.java

Author: andy
Date: Fri Dec 13 19:12:46 2013
New Revision: 1550813

URL: http://svn.apache.org/r1550813
Log:
Don't close stream immediately - ResultSet streamed.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java?rev=1550813&r1=1550812&r2=1550813&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFactory.java Fri Dec 13 19:12:46 2013
@@ -21,7 +21,6 @@ package com.hp.hpl.jena.query;
 import java.io.InputStream ;
 import java.util.List ;
 
-import org.apache.jena.atlas.io.IO ;
 import org.apache.jena.atlas.logging.Log ;
 
 import com.hp.hpl.jena.rdf.model.Model ;
@@ -267,32 +266,28 @@ public class ResultSetFactory {
             || format.equals(ResultsFormat.FMT_RS_TSV) || format.equals(ResultsFormat.FMT_RS_CSV)) {
             InputStream in = null;
             try {
-                try {
-                    in = FileManager.get().open(filenameOrURI);
-                    if (in == null)
-                        throw new NotFoundException(filenameOrURI);
-                } catch (NotFoundException ex) {
-                    throw new NotFoundException("File not found: " + filenameOrURI);
-                }
-
-                SPARQLResult x = null;
-
-                if (format.equals(ResultsFormat.FMT_RS_JSON))
-                    return JSONInput.make(in, GraphFactory.makeDefaultModel());
-                else if (format.equals(ResultsFormat.FMT_RS_XML))
-                    return XMLInput.make(in, GraphFactory.makeDefaultModel());
-                else if (format.equals(ResultsFormat.FMT_RS_TSV)) {
-                    ResultSet rs = TSVInput.fromTSV(in);
-                    return new SPARQLResult(rs);
-                } else if (format.equals(ResultsFormat.FMT_RS_CSV)) {
-                    ResultSet rs = CSVInput.fromCSV(in);
-                    return new SPARQLResult(rs);
-                } else if (format.equals(ResultsFormat.FMT_RS_BIO)) {
-                    ResultSet rs = BIOInput.fromBIO(in);
-                    return new SPARQLResult(rs);
-                }
-            } finally {
-                IO.close(in) ; 
+                in = FileManager.get().open(filenameOrURI);
+                if (in == null)
+                    throw new NotFoundException(filenameOrURI);
+            } catch (NotFoundException ex) {
+                throw new NotFoundException("File not found: " + filenameOrURI);
+            }
+
+            SPARQLResult x = null;
+
+            if (format.equals(ResultsFormat.FMT_RS_JSON))
+                return JSONInput.make(in, GraphFactory.makeDefaultModel());
+            else if (format.equals(ResultsFormat.FMT_RS_XML))
+                return XMLInput.make(in, GraphFactory.makeDefaultModel());
+            else if (format.equals(ResultsFormat.FMT_RS_TSV)) {
+                ResultSet rs = TSVInput.fromTSV(in);
+                return new SPARQLResult(rs);
+            } else if (format.equals(ResultsFormat.FMT_RS_CSV)) {
+                ResultSet rs = CSVInput.fromCSV(in);
+                return new SPARQLResult(rs);
+            } else if (format.equals(ResultsFormat.FMT_RS_BIO)) {
+                ResultSet rs = BIOInput.fromBIO(in);
+                return new SPARQLResult(rs);
             }
         }
 

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java?rev=1550813&r1=1550812&r2=1550813&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/XMLInputStAX.java Fri Dec 13 19:12:46 2013
@@ -276,10 +276,10 @@ class XMLInputStAX extends SPARQLResult 
 
         @Override
         public void close() {
+            if ( finished )
+                return ;
             finished = true ;
-            try {
-                parser.close() ;
-            } catch (XMLStreamException ex) {}
+            try { parser.close() ; } catch (XMLStreamException ex) {}
         }
 
         // -------- Boolean stuff
@@ -399,10 +399,11 @@ class XMLInputStAX extends SPARQLResult 
         }
 
         private Binding getOneSolution() throws XMLStreamException {
+            if ( finished )
+                return null ;
             // At the start of <result>
             BindingMap binding = BindingFactory.create() ;
             String varName = null ;
-
             while (parser.hasNext()) {
                 int event = parser.next() ;
                 String tag = null ;