Author: andy
Date: Thu Jul 31 10:52:54 2014
New Revision: 1614857

URL: http://svn.apache.org/r1614857
Log:
try-with-resource improvements

Modified:
    
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateAction.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateFactory.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
    
jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
    
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/query/TestParameterizedSparqlString.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestSemanticEquivalence.java
    jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestAPI.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionCancel.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout1.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout2.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/engine/TestQueryEngineMultiThreaded.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/function/user/TestUserFunctionsInSparql.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/GraphsTests.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/TestGraphsDataBag.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/junit/QueryTest.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/negation/TestGraphDeltas.java
    
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/util/TestFmtUtils.java
    
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestBlockUTF8.java
    
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestStreamUTF8.java
    
jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
    jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java

Modified: 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
 (original)
+++ 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/http/QueryEngineHTTP.java
 Thu Jul 31 10:52:54 2014
@@ -465,9 +465,7 @@ public class QueryEngineHTTP implements 
         checkNotClosed() ;
         HttpQuery httpQuery = makeHttpQuery();
         httpQuery.setAccept(askContentType);
-        InputStream in = httpQuery.exec();
-
-        try {
+        try(InputStream in = httpQuery.exec()) {
             // Don't assume the endpoint actually gives back the content type 
we
             // asked for
             String actualContentType = httpQuery.getContentType();
@@ -490,13 +488,9 @@ public class QueryEngineHTTP implements 
                 return CSVInput.booleanFromCSV(in);
             throw new QueryException("Endpoint returned Content-Type: " + 
actualContentType
                     + " which is not currently supported for ASK queries");
-        } finally {
-            // Ensure connection is released
-            try {
-                in.close();
-            } catch (java.io.IOException e) {
-                log.warn("Failed to close connection", e);
-            }
+        } catch (java.io.IOException e) {
+            log.warn("Failed to close connection", e);
+            return false ;
         }
     }
 

Modified: 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java 
(original)
+++ 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java 
Thu Jul 31 10:52:54 2014
@@ -18,13 +18,47 @@
 
 package com.hp.hpl.jena.sparql.expr;
 
-import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.* ;
-import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.* ;
-import static javax.xml.datatype.DatatypeConstants.* ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSD ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDboolean ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDdate ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDdateTime ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDdecimal ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDdouble ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDduration ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDfloat ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgDay ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonth ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgMonthDay ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYear ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDgYearMonth ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDinteger ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDstring ;
+import static com.hp.hpl.jena.datatypes.xsd.XSDDatatype.XSDtime ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_BOOLEAN ;
+import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_DATE 
;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_DATETIME ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_DIFFERENT ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_DURATION ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_G_DAY ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_G_MONTH ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_G_MONTHDAY ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_G_YEAR ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_G_YEARMONTH ;
+import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_LANG 
;
+import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_NODE 
;
+import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_NUM ;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_STRING ;
+import static com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_TIME 
;
+import static 
com.hp.hpl.jena.sparql.expr.ValueSpaceClassification.VSPACE_UNKNOWN ;
+import static javax.xml.datatype.DatatypeConstants.DAYS ;
+import static javax.xml.datatype.DatatypeConstants.HOURS ;
+import static javax.xml.datatype.DatatypeConstants.MINUTES ;
+import static javax.xml.datatype.DatatypeConstants.MONTHS ;
+import static javax.xml.datatype.DatatypeConstants.SECONDS ;
+import static javax.xml.datatype.DatatypeConstants.YEARS ;
 
 import java.io.File ;
 import java.io.FileInputStream ;
-import java.io.IOException ;
 import java.io.InputStream ;
 import java.math.BigDecimal ;
 import java.math.BigInteger ;
@@ -170,21 +204,11 @@ public abstract class NodeValue extends 
             // Step 2. Otherwise, try property in jaxp.properties
             if (dtfClass == null && jaxpPropFile.exists() && 
jaxpPropFile.canRead()) {
                 Properties jaxp = new Properties();
-                InputStream in = null;
-                try {
-                    in = new FileInputStream(jaxpPropFile);
+                try(InputStream in = new FileInputStream(jaxpPropFile)) {
                     jaxp.load(in);
                     dtfClass = 
jaxp.getProperty(DatatypeFactory.DATATYPEFACTORY_PROPERTY);
                 } catch (Exception e) {
                     log.warn("Issue loading jaxp.properties", e);
-                } finally {
-                    if (in != null) {
-                        try {
-                            in.close();
-                        } catch (IOException ex) {
-                            log.warn("Issue closing jaxp.properties ", ex);
-                        }
-                    }
                 }
             }
         }

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=1614857&r1=1614856&r2=1614857&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 
Thu Jul 31 10:52:54 2014
@@ -334,18 +334,20 @@ public class UpdateAction
     }
     
     /** Parse update operations into a GraphStore by reading it from a file */
+    @SuppressWarnings("resource")
     public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
String fileName, Binding inputBinding, String baseURI, Syntax syntax)
     { 
         InputStream in = null ;
         if ( fileName.equals("-") )
             in = System.in ;
-        else
-        {
+        else {
             in = IO.openFile(fileName) ;
             if ( in == null )
                 throw new UpdateException("File could not be opened: 
"+fileName) ;
         }
         parseExecute(usingList, dataset, in, inputBinding, baseURI, syntax) ;
+        if ( in != System.in )
+            IO.close(in) ;
     }
     
     /** 

Modified: 
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateFactory.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateFactory.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateFactory.java 
(original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/update/UpdateFactory.java 
Thu Jul 31 10:52:54 2014
@@ -177,15 +177,20 @@ public class UpdateFactory
     public static UpdateRequest read(UsingList usingList, String fileName, 
String baseURI, Syntax syntax)
     { 
         InputStream in = null ;
-        if ( fileName.equals("-") )
-            in = System.in ;
-        else
-        {
-            in = IO.openFile(fileName) ;
-            if ( in == null )
-                throw new UpdateException("File could not be opened: 
"+fileName) ;
+        try {
+            if ( fileName.equals("-") )
+                in = System.in ;
+            else
+            {
+                in = IO.openFile(fileName) ;
+                if ( in == null )
+                    throw new UpdateException("File could not be opened: 
"+fileName) ;
+            }
+            return read(usingList, in, baseURI, syntax) ;
+        } finally {
+            if ( in != null && ! fileName.equals("-") )
+                IO.close(in) ;
         }
-        return read(usingList, in, baseURI, syntax) ;
     }
     
     /**  Create an UpdateRequest by parsing from an InputStream.

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java 
(original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/io/IO.java Thu Jul 
31 10:52:54 2014
@@ -227,8 +227,7 @@ public class IO
     private static final int BUFFER_SIZE = 32*1024 ; 
     
     public static byte[] readWholeFile(InputStream in) {
-        try {
-            ByteArrayOutputStream out = new ByteArrayOutputStream(BUFFER_SIZE) 
;
+        try(ByteArrayOutputStream out = new 
ByteArrayOutputStream(BUFFER_SIZE)) {
             byte buff[] = new byte[BUFFER_SIZE] ;
             while (true) {
                 int l = in.read(buff) ;
@@ -236,7 +235,6 @@ public class IO
                     break ;
                 out.write(buff, 0, l) ;
             }
-            out.close() ;
             return out.toByteArray() ;
         }
         catch (IOException ex) {
@@ -279,17 +277,17 @@ public class IO
     
     // Private worker as we are trying to force UTF-8. 
     private static String readWholeFileAsUTF8(Reader r) throws IOException {
-        StringWriter sw = new StringWriter(BUFFER_SIZE);
-        char buff[] = new char[BUFFER_SIZE];
-        for (;;)
-        {
-            int l = r.read(buff);
-            if (l < 0)
-                break;
-            sw.write(buff, 0, l);
+        try(StringWriter sw = new StringWriter(BUFFER_SIZE)) {
+            char buff[] = new char[BUFFER_SIZE];
+            for (;;)
+            {
+                int l = r.read(buff);
+                if (l < 0)
+                    break;
+                sw.write(buff, 0, l);
+            }
+            return sw.toString();
         }
-        sw.close();
-        return sw.toString();  
     }
 
     public static String uniqueFilename(String directory, String base, String 
ext) {

Modified: 
jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java 
(original)
+++ 
jena/trunk/jena-arq/src/main/java/org/apache/jena/atlas/lib/PropertyUtils.java 
Thu Jul 31 10:52:54 2014
@@ -49,11 +49,11 @@ public class PropertyUtils
         String str = comment ;
         if ( str == null )
             str = filename ;
-        FileOutputStream fos = new FileOutputStream(filename) ;
-        Writer w = FileUtils.asUTF8(fos) ;
-        w = new BufferedWriter(w) ;
-        properties.store(w, "Metadata: "+str) ;   // Java6.
-        fos.close() ;
+        try(FileOutputStream fos = new FileOutputStream(filename)) {
+            Writer w = FileUtils.asUTF8(fos) ;
+            w = new BufferedWriter(w) ;
+            properties.store(w, "Metadata: "+str) ;
+        }
     }
     
     public static int getPropertyAsInteger(Properties properties, String key)

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java 
(original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpOp.java Thu 
Jul 31 10:52:54 2014
@@ -146,9 +146,9 @@ public class HttpOp {
         @Override
         public void handle(String baseIRI, HttpResponse response) throws 
IOException {
             HttpEntity entity = response.getEntity();
-            InputStream instream = entity.getContent();
-            result = IO.readWholeFileAsUTF8(instream);
-            instream.close();
+            try(InputStream instream = entity.getContent()) {
+                result = IO.readWholeFileAsUTF8(instream);
+            }
         }
 
         @Override

Modified: 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java 
(original)
+++ 
jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java 
Thu Jul 31 10:52:54 2014
@@ -59,9 +59,9 @@ public class HttpResponseLib
                 String ct = contentType(response) ;
                 Lang lang = RDFLanguages.contentTypeToLang(ct) ;
                 StreamRDF dest = StreamRDFLib.graph(g) ; 
-                InputStream in = entity.getContent() ;
-                RDFDataMgr.parse(dest, in, baseIRI, lang) ;
-                in.close() ;
+                try(InputStream in = entity.getContent()) {
+                    RDFDataMgr.parse(dest, in, baseIRI, lang) ;
+                }
                 this.graph = g ; 
             } catch (IOException ex) { IO.exception(ex) ; }
         }
@@ -80,13 +80,13 @@ public class HttpResponseLib
                 org.apache.http.entity.ContentType ct = 
org.apache.http.entity.ContentType.get(entity) ;
                 System.out.println("Content-type: "+ct) ;
                 System.out.println() ;
-                InputStream in = entity.getContent() ;
-                int l ;
-                byte buffer[] = new byte[1024] ;
-                while( (l=in.read(buffer)) != -1 ) {
-                    System.out.print(new String(buffer, 0, l, "UTF-8")) ;
+                try (InputStream in = entity.getContent()) {
+                    int l ;
+                    byte buffer[] = new byte[1024] ;
+                    while ((l = in.read(buffer)) != -1) {
+                        System.out.print(new String(buffer, 0, l, "UTF-8")) ;
+                    }
                 }
-                in.close() ;
             } catch (IOException ex)
             {
                 ex.printStackTrace(System.err) ;

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/query/TestParameterizedSparqlString.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/query/TestParameterizedSparqlString.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/query/TestParameterizedSparqlString.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/query/TestParameterizedSparqlString.java
 Thu Jul 31 10:52:54 2014
@@ -254,17 +254,16 @@ public class TestParameterizedSparqlStri
         pq.setCommandText("SELECT * WHERE { ?s ?p ?o }");
         pq.setIri("s", "_:" + bnode.getId());
         Query q = pq.asQuery();
-        QueryExecution qe = QueryExecutionFactory.create(q, ds);
-        ResultSet rset = qe.execSelect();
-        Assert.assertEquals(1, ResultSetFormatter.consume(rset));
-        qe.close();
+        try(QueryExecution qe = QueryExecutionFactory.create(q, ds)) {
+            ResultSet rset = qe.execSelect();
+            Assert.assertEquals(1, ResultSetFormatter.consume(rset));
+        }
 
         // Use a parameterized update to modify the data
         ParameterizedSparqlString s = new ParameterizedSparqlString();
         s.setCommandText("INSERT { ?o ?p ?s } WHERE { ?s ?p ?o }");
         s.setIri("s", "_:" + bnode.getId());
         UpdateRequest query = s.asUpdate();
-
         UpdateProcessor proc = UpdateExecutionFactory.create(query, 
GraphStoreFactory.create(ds));
         proc.execute();
 

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestSemanticEquivalence.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestSemanticEquivalence.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestSemanticEquivalence.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestSemanticEquivalence.java
 Thu Jul 31 10:52:54 2014
@@ -175,30 +175,31 @@ public class TestSemanticEquivalence {
         try {
             // Run first without optimization
             ARQ.set(opt, false);
-            QueryExecution qe = QueryExecutionFactory.create(q, ds);
-            ResultSetRewindable rs = 
ResultSetFactory.makeRewindable(qe.execSelect());
-            if (expected != rs.size()) {
-                System.err.println("Non-optimized results not as expected");
-                TextOutput output = new TextOutput((SerializationContext)null);
-                output.format(System.out, rs);
-                rs.reset();
+            ResultSetRewindable rs ;
+            try(QueryExecution qe = QueryExecutionFactory.create(q, ds)) {
+                rs = ResultSetFactory.makeRewindable(qe.execSelect());
+                if (expected != rs.size()) {
+                    System.err.println("Non-optimized results not as 
expected");
+                    TextOutput output = new 
TextOutput((SerializationContext)null);
+                    output.format(System.out, rs);
+                    rs.reset();
+                }
+                Assert.assertEquals(expected, rs.size());
             }
-            Assert.assertEquals(expected, rs.size());
-            qe.close();
 
             // Run with optimization
             ARQ.set(opt, true);
-            QueryExecution qeOpt = QueryExecutionFactory.create(q, ds);
-            ResultSetRewindable rsOpt = 
ResultSetFactory.makeRewindable(qeOpt.execSelect());
-            if (expected != rsOpt.size()) {
-                System.err.println("Optimized results not as expected");
-                TextOutput output = new TextOutput((SerializationContext)null);
-                output.format(System.out, rsOpt);
-                rsOpt.reset();
+            ResultSetRewindable rsOpt ;
+            try(QueryExecution qeOpt = QueryExecutionFactory.create(q, ds)) {
+                    rsOpt = 
ResultSetFactory.makeRewindable(qeOpt.execSelect());
+                if (expected != rsOpt.size()) {
+                    System.err.println("Optimized results not as expected");
+                    TextOutput output = new 
TextOutput((SerializationContext)null);
+                    output.format(System.out, rsOpt);
+                    rsOpt.reset();
+                }
+                Assert.assertEquals(expected, rsOpt.size());
             }
-            Assert.assertEquals(expected, rsOpt.size());
-            qeOpt.close();
-
             Assert.assertTrue(ResultSetCompare.isomorphic(rs, rsOpt));
         } finally {
             // Restore previous state

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestAPI.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestAPI.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestAPI.java 
(original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestAPI.java 
Thu Jul 31 10:52:54 2014
@@ -47,52 +47,47 @@ public class TestAPI extends BaseTest
     
     @Test public void testInitialBindingsConstruct1()
     {
-        QueryExecution qExec = makeQExec("CONSTRUCT {?s ?p ?z} {?s ?p 'x1'}") ;
-        QuerySolutionMap init = new QuerySolutionMap() ;
-        init.add("z", m.createLiteral("zzz"));
+        try(QueryExecution qExec = makeQExec("CONSTRUCT {?s ?p ?z} {?s ?p 
'x1'}")) {
+            QuerySolutionMap init = new QuerySolutionMap() ;
+            init.add("z", m.createLiteral("zzz"));
+            
+            qExec.setInitialBinding(init) ;
+            Model r = qExec.execConstruct() ;
         
-        qExec.setInitialBinding(init) ;
-        Model r = qExec.execConstruct() ;
-    
-        assertTrue("Empty model", r.size() > 0 ) ;
-    
-        Property p1 = m.createProperty(ns+"p1") ;
-    
-        assertTrue("Empty model", r.contains(null,p1, init.get("z"))) ; 
+            assertTrue("Empty model", r.size() > 0 ) ;
+        
+            Property p1 = m.createProperty(ns+"p1") ;
         
-        qExec.close() ;
+            assertTrue("Empty model", r.contains(null,p1, init.get("z"))) ; 
+        }
     }
     
-    
     @Test public void testInitialBindingsConstruct2()
     {
-        QueryExecution qExec = makeQExec("CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p 
?o }") ;
-        QuerySolutionMap init = new QuerySolutionMap() ;
-        init.add("o", m.createLiteral("x1"));
+        try(QueryExecution qExec = makeQExec("CONSTRUCT { ?s ?p ?o } WHERE { 
?s ?p ?o }")) {
+            QuerySolutionMap init = new QuerySolutionMap() ;
+            init.add("o", m.createLiteral("x1"));
+            
+            qExec.setInitialBinding(init) ;
+            Model r = qExec.execConstruct() ;
         
-        qExec.setInitialBinding(init) ;
-        Model r = qExec.execConstruct() ;
-    
-        assertTrue("Empty model", r.size() > 0 ) ;
-    
-        Property p1 = m.createProperty(ns+"p1") ;
-    
-        assertTrue("Empty model", r.contains(null, p1, init.get("x1"))) ; 
+            assertTrue("Empty model", r.size() > 0 ) ;
+        
+            Property p1 = m.createProperty(ns+"p1") ;
         
-        qExec.close() ;
+            assertTrue("Empty model", r.contains(null, p1, init.get("x1"))) ; 
+        }
     }
 
     @Test public void test_API1()
     {
-        QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}") ;
-        try {
+        try(QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}")) {
             ResultSet rs = qExec.execSelect() ;
             assertTrue("No results", rs.hasNext()) ;
             QuerySolution qs = rs.nextSolution() ;
             Resource qr = qs.getResource("s") ;
             assertSame("Not the same model as queried", qr.getModel(), m) ;
-        } finally { qExec.close() ; }
-        
+        }
     }
     
 //    @Test public void test_OptRegex1()
@@ -143,14 +138,14 @@ public class TestAPI extends BaseTest
 
     @Test public void testInitialBindings3()
     {
-        QueryExecution qExec = makeQExec("SELECT * {?s ?p 'x1'}") ;
-        QuerySolutionMap init = new QuerySolutionMap() ;
-        init.add("z", m.createLiteral("zzz"));
-        qExec.setInitialBinding(init) ;
-        ResultSet rs = qExec.execSelect() ;
-        QuerySolution qs = rs.nextSolution() ;
-        assertTrue("Initial setting not set correctly now", 
qs.getLiteral("z").getLexicalForm().equals("zzz")) ;
-        qExec.close() ;
+        try(QueryExecution qExec = makeQExec("SELECT * {?s ?p 'x1'}")) {
+            QuerySolutionMap init = new QuerySolutionMap() ;
+            init.add("z", m.createLiteral("zzz"));
+            qExec.setInitialBinding(init) ;
+            ResultSet rs = qExec.execSelect() ;
+            QuerySolution qs = rs.nextSolution() ;
+            assertTrue("Initial setting not set correctly now", 
qs.getLiteral("z").getLexicalForm().equals("zzz")) ;
+        }
     }
     
     @Test public void testInitialBindings4()
@@ -168,18 +163,17 @@ public class TestAPI extends BaseTest
             "}";
         
         Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);
-        QueryExecution qexec = QueryExecutionFactory.create(query, m);
-
-        QuerySolutionMap map = new QuerySolutionMap();
-        map.add("this", OWL.Thing);
-        qexec.setInitialBinding(map);
-        
-        ResultSet rs = qexec.execSelect();
-        while(rs.hasNext()) {
-            QuerySolution qs = rs.nextSolution();
-            //System.out.println("Result: " + qs);
+        try(QueryExecution qexec = QueryExecutionFactory.create(query, m)) {
+            QuerySolutionMap map = new QuerySolutionMap();
+            map.add("this", OWL.Thing);
+            qexec.setInitialBinding(map);
+            
+            ResultSet rs = qexec.execSelect();
+            while(rs.hasNext()) {
+                QuerySolution qs = rs.nextSolution();
+                //System.out.println("Result: " + qs);
+            }
         }
-        qexec.close() ;
     }
     
     /**
@@ -245,18 +239,18 @@ public class TestAPI extends BaseTest
         String queryString = "SELECT (count(?s) AS ?c) {?s ?p ?o} GROUP BY ?s";
         Query q = QueryFactory.create(queryString) ;
         
-        QueryExecution qExec = QueryExecutionFactory.create(q, m) ;
-        
-        ResultSet rs = qExec.execSelect() ;
-        QuerySolution qs = rs.nextSolution() ;
-        assertEquals(3, qs.getLiteral("c").getInt()) ;
-        qExec.close() ;
-        
-        qExec = QueryExecutionFactory.create(q, m) ;
-        rs = qExec.execSelect() ;
-        qs = rs.nextSolution() ;
-        assertEquals(3, qs.getLiteral("c").getInt()) ;
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(q, m)) {
+            
+            ResultSet rs = qExec.execSelect() ;
+            QuerySolution qs = rs.nextSolution() ;
+            assertEquals(3, qs.getLiteral("c").getInt()) ;
+        }
+            
+        try(QueryExecution qExec = QueryExecutionFactory.create(q, m)) {
+            ResultSet rs = qExec.execSelect() ;
+            QuerySolution qs = rs.nextSolution() ;
+            assertEquals(3, qs.getLiteral("c").getInt()) ;
+        }
     }
     
     @Test public void testConstructRejectsBadTriples1()

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionCancel.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionCancel.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionCancel.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionCancel.java
 Thu Jul 31 10:52:54 2014
@@ -57,53 +57,49 @@ public class TestQueryExecutionCancel ex
     @Test(expected=QueryCancelledException.class)
     public void test_Cancel_API_1()
     {
-        QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}") ;
-        try {
+        try(QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}")) {
             ResultSet rs = qExec.execSelect() ;
             assertTrue(rs.hasNext()) ;
             qExec.abort();
-            
             assertTrue(rs.hasNext()) ;
             rs.nextSolution();
             assertFalse("Results not expected after cancel.", rs.hasNext()) ;
-        } finally { qExec.close() ; }
+        }
     }
     
     @Test(expected=QueryCancelledException.class)
     public void test_Cancel_API_2()
     {
-        QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> " +
-        "SELECT * {?s ?p ?o . FILTER ex:wait(100) }") ;
-        try {
+        try(QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> SELECT * 
{?s ?p ?o . FILTER ex:wait(100) }")) {
             ResultSet rs = qExec.execSelect() ;
             assertTrue(rs.hasNext()) ;
             qExec.abort();
             assertTrue(rs.hasNext()) ;
             rs.nextSolution();
             assertFalse("Results not expected after cancel.", rs.hasNext()) ;
-        } finally { qExec.close() ; }
+        }
     }    
     
     @Test public void test_Cancel_API_3() throws InterruptedException
     {
-        QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> " +
-        "SELECT * {?s ?p ?o . FILTER ex:wait(100) }") ;
+        // Don't qExec.close on this thread.
+        QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> SELECT * { 
?s ?p ?o . FILTER ex:wait(100) }") ;
         CancelThreadRunner thread = new CancelThreadRunner(qExec);
         thread.start();
         synchronized (qExec) { qExec.wait() ; }
-        qExec.abort();
+        synchronized (qExec) { qExec.abort() ;}
         synchronized (qExec) { qExec.notify() ; }
         assertEquals (1, thread.getCount()) ;
     }
     
     @Test public void test_Cancel_API_4() throws InterruptedException
-    {
-        QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> " +
-        "SELECT * {?s ?p ?o } ORDER BY ex:wait(100)") ;
+    { 
+        // Don't qExec.close on this thread.
+        QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> SELECT * { 
?s ?p ?o } ORDER BY ex:wait(100)") ;
         CancelThreadRunner thread = new CancelThreadRunner(qExec);
         thread.start();
         synchronized (qExec) { qExec.wait() ; }
-        qExec.abort();
+        synchronized (qExec) { qExec.abort(); }
         synchronized (qExec) { qExec.notify() ; }
         assertEquals (1, thread.getCount()) ;
     }

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout1.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout1.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout1.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout1.java
 Thu Jul 31 10:52:54 2014
@@ -99,6 +99,7 @@ public class TestQueryExecutionTimeout1 
     public void timeout_03()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
+        @SuppressWarnings("resource")
         QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
         qExec.setTimeout(100, TimeUnit.MILLISECONDS) ;
         ResultSet rs = qExec.execSelect() ;
@@ -111,13 +112,13 @@ public class TestQueryExecutionTimeout1 
     public void timeout_04()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(50, TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        ResultSetFormatter.consume(rs) ;
-        sleep(100) ;
-        rs.hasNext() ;         // Query ended - calling rs.hasNext() is safe.
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(50, TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            ResultSetFormatter.consume(rs) ;
+            sleep(100) ;
+            rs.hasNext() ;         // Query ended - calling rs.hasNext() is 
safe.
+        }
     }
 
 //    @Test
@@ -125,22 +126,22 @@ public class TestQueryExecutionTimeout1 
 //    {
 //        // This test is hard to get stable.
 //        String qs = prefix + "SELECT * { ?s ?p ?o FILTER f:wait(200) }" ;
-//        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-//        qExec.setTimeout(50, TimeUnit.MILLISECONDS) ;
-//        ResultSet rs = qExec.execSelect() ;
-//        exceptionExpected(rs) ; 
-//        qExec.close() ;
+//        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+//            qExec.setTimeout(50, TimeUnit.MILLISECONDS) ;
+//            ResultSet rs = qExec.execSelect() ;
+//            exceptionExpected(rs) ; 
+//        }
 //    }
     
     @Test
     public void timeout_06()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o FILTER f:wait(1) }" ; // 
Sleep in execution to kick timer thread.
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(100, TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        ResultSetFormatter.consume(rs) ;
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(100, TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            ResultSetFormatter.consume(rs) ;
+        }
     }
     
     @Test
@@ -148,10 +149,10 @@ public class TestQueryExecutionTimeout1 
     {
         // No timeout.
         String qs = prefix + "SELECT * { ?s ?p ?o FILTER f:wait(1) }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        ResultSet rs = qExec.execSelect() ;
-        ResultSetFormatter.consume(rs) ;
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            ResultSet rs = qExec.execSelect() ;
+            ResultSetFormatter.consume(rs) ;
+        }
     }
 
     @Test
@@ -159,54 +160,54 @@ public class TestQueryExecutionTimeout1 
     {
         // No timeout.
         String qs = prefix + "SELECT * { ?s ?p ?o FILTER f:wait(1) }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(-1, TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        ResultSetFormatter.consume(rs) ;
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(-1, TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            ResultSetFormatter.consume(rs) ;
+        }
     }
 
     @Test
     public void timeout_09()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(500, TimeUnit.MILLISECONDS, -1, 
TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        rs.next() ; // First timeout does not go off. Resets timers.
-        rs.next() ; // Second timeout never goes off 
-        assertTrue(rs.hasNext()) ;
-        ResultSetFormatter.consume(rs) ; // Second timeout does not go off.
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(500, TimeUnit.MILLISECONDS, -1, 
TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            rs.next() ; // First timeout does not go off. Resets timers.
+            rs.next() ; // Second timeout never goes off 
+            assertTrue(rs.hasNext()) ;
+            ResultSetFormatter.consume(rs) ; // Second timeout does not go off.
+        }
     }
 
     @Test
     public void timeout_10()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(100, TimeUnit.MILLISECONDS, 100, 
TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        rs.next() ; // First timeout does not go off. Resets timers.
-        rs.next() ; // Second timeout never goes off 
-        assertTrue(rs.hasNext()) ;
-        sleep(200) ;
-        exceptionExpected(rs) ; 
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(100, TimeUnit.MILLISECONDS, 100, 
TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            rs.next() ; // First timeout does not go off. Resets timers.
+            rs.next() ; // Second timeout never goes off 
+            assertTrue(rs.hasNext()) ;
+            sleep(200) ;
+            exceptionExpected(rs) ; 
+        }
     }
     
     @Test
     public void timeout_11()
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        qExec.setTimeout(-1, TimeUnit.MILLISECONDS, 100, 
TimeUnit.MILLISECONDS) ;
-        ResultSet rs = qExec.execSelect() ;
-        rs.next() ; // First timeout does not go off. Resets timer.
-        rs.next() ; // Second timeout does not go off
-        sleep(200) ;
-        exceptionExpected(rs) ; 
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            qExec.setTimeout(-1, TimeUnit.MILLISECONDS, 100, 
TimeUnit.MILLISECONDS) ;
+            ResultSet rs = qExec.execSelect() ;
+            rs.next() ; // First timeout does not go off. Resets timer.
+            rs.next() ; // Second timeout does not go off
+            sleep(200) ;
+            exceptionExpected(rs) ; 
+        }
     }
     
     // Set timeouts via context.
@@ -238,10 +239,10 @@ public class TestQueryExecutionTimeout1 
     {
         String qs = prefix + "SELECT * { ?s ?p ?o }" ;
         ARQ.getContext().set(ARQ.queryTimeout, "-1") ;
-        QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ;
-        ResultSet rs = qExec.execSelect() ;
-        ResultSetFormatter.consume(rs) ;
-        qExec.close() ;
+        try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) {
+            ResultSet rs = qExec.execSelect() ;
+            ResultSetFormatter.consume(rs) ;
+        }
     }
 
     private static void exceptionExpected(ResultSet rs)

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout2.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout2.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout2.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/api/TestQueryExecutionTimeout2.java
 Thu Jul 31 10:52:54 2014
@@ -83,8 +83,7 @@ public class TestQueryExecutionTimeout2
     private static void test2(long timeout1, long timeout2, int delay, boolean 
exceptionExpected)
     {
         // Enough rows to keep the iterator pipeline full.
-        QueryExecution qExec = QueryExecutionFactory.create(prefix+"SELECT * { 
?s ?p ?o }", ds) ;
-        try {
+        try(QueryExecution qExec = QueryExecutionFactory.create(prefix+"SELECT 
* { ?s ?p ?o }", ds)) {
             qExec.setTimeout(timeout1, timeout2) ;
             // No rewrite optimizations.
             // qExec.getContext().set(ARQConstants.sysOptimizerFactory, 
Optimize.noOptimizationFactory) ;
@@ -98,8 +97,6 @@ public class TestQueryExecutionTimeout2
                 exceptionExpected(rs) ;
             else
                 noException(rs) ;
-        } finally {
-            qExec.close() ;
         }
     }
 }

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/engine/TestQueryEngineMultiThreaded.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/engine/TestQueryEngineMultiThreaded.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/engine/TestQueryEngineMultiThreaded.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/engine/TestQueryEngineMultiThreaded.java
 Thu Jul 31 10:52:54 2014
@@ -180,25 +180,22 @@ public class TestQueryEngineMultiThreade
 
     private Model executeSparqlConstruct(Model model, String sparql, boolean 
lock) {
         Query query = QueryFactory.create(sparql);
-        QueryExecution queryExec = QueryExecutionFactory.create(query, model);
-        model.enterCriticalSection(lock);
-        try {
-            return queryExec.execConstruct();
-        } finally {
-            queryExec.close();
-            model.leaveCriticalSection();
+        try(QueryExecution queryExec = QueryExecutionFactory.create(query, 
model)) {
+            model.enterCriticalSection(lock);
+            try { return queryExec.execConstruct() ; }
+            finally { model.leaveCriticalSection() ; }
         }
     }
     
     private ResultSetRewindable executeSparqlSelect(Model model, String 
sparql, boolean lock) {
         Query query = QueryFactory.create(sparql);
-        QueryExecution queryExec = QueryExecutionFactory.create(query, model);
-        model.enterCriticalSection(lock);
-        try {
-            return ResultSetFactory.makeRewindable(queryExec.execSelect());
-        } finally {
-            queryExec.close();
-            model.leaveCriticalSection();
+        try(QueryExecution queryExec = QueryExecutionFactory.create(query, 
model)) {
+            model.enterCriticalSection(lock);
+            try {
+                return ResultSetFactory.makeRewindable(queryExec.execSelect());
+            } finally {
+                model.leaveCriticalSection();
+            }
         }
     }
     

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/function/user/TestUserFunctionsInSparql.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/function/user/TestUserFunctionsInSparql.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/function/user/TestUserFunctionsInSparql.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/function/user/TestUserFunctionsInSparql.java
 Thu Jul 31 10:52:54 2014
@@ -67,15 +67,14 @@ public class TestUserFunctionsInSparql {
         String query = "SELECT (<http://example/square>(2) AS ?square) { }";
         Query q = QueryFactory.create(query);
         
-        QueryExecution qe = QueryExecutionFactory.create(q, 
ModelFactory.createDefaultModel());
-        ResultSet rset = qe.execSelect();
-        Assert.assertTrue(rset.hasNext());
-        Binding b = rset.nextBinding();
-        Assert.assertFalse(rset.hasNext());
-        qe.close();
-        
-        //Validate returned value
-        Node actual = b.get(Var.alloc("square"));
-        Assert.assertEquals(NodeFactoryExtra.intToNode(4), actual);
+        try(QueryExecution qe = QueryExecutionFactory.create(q, 
ModelFactory.createDefaultModel())) {
+            ResultSet rset = qe.execSelect();
+            Assert.assertTrue(rset.hasNext());
+            Binding b = rset.nextBinding();
+            Assert.assertFalse(rset.hasNext());
+            //Validate returned value
+            Node actual = b.get(Var.alloc("square"));
+            Assert.assertEquals(NodeFactoryExtra.intToNode(4), actual);
+        }
     }
 }

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/GraphsTests.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/GraphsTests.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/GraphsTests.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/GraphsTests.java 
Thu Jul 31 10:52:54 2014
@@ -215,11 +215,10 @@ public abstract class GraphsTests extend
     private int query(String str, Model model)
     {
         Query q = QueryFactory.create(str, Syntax.syntaxARQ) ;
-        QueryExecution qexec = QueryExecutionFactory.create(q, model) ;
-        ResultSet rs = qexec.execSelect() ;
-        int x = ResultSetFormatter.consume(rs) ;
-        qexec.close() ;
-        return x ;
+        try(QueryExecution qexec = QueryExecutionFactory.create(q, model)) {
+            ResultSet rs = qexec.execSelect() ;
+            return  ResultSetFormatter.consume(rs) ;
+        }
     }
     
     private int api(Model model)

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/TestGraphsDataBag.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/TestGraphsDataBag.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/TestGraphsDataBag.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/graph/TestGraphsDataBag.java
 Thu Jul 31 10:52:54 2014
@@ -144,11 +144,10 @@ public class TestGraphsDataBag extends B
     {
         Model model = ModelFactory.createModelForGraph(g);
         Query q = QueryFactory.create(str, Syntax.syntaxARQ) ;
-        QueryExecution qexec = QueryExecutionFactory.create(q, model) ;
+        try(QueryExecution qexec = QueryExecutionFactory.create(q, model)) {
         ResultSet rs = qexec.execSelect() ;
-        int x = ResultSetFormatter.consume(rs) ;
-        qexec.close() ;
-        return x ;
+        return ResultSetFormatter.consume(rs) ;
+        }
     }
     
     private int count(Graph g)

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/junit/QueryTest.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/junit/QueryTest.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/junit/QueryTest.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/junit/QueryTest.java 
Thu Jul 31 10:52:54 2014
@@ -158,14 +158,9 @@ public class QueryTest extends EarlTestC
             if ( dataset == null && ! doesQueryHaveDataset(query) ) 
                 fail("No dataset for query") ;
 
-            QueryExecution qe = null ;
-            
-            if ( dataset == null )
-                qe = QueryExecutionFactory.create(query) ;
-            else
-                qe = QueryExecutionFactory.create(query, dataset) ;
-            
-            try {
+            try(QueryExecution qe = ( dataset == null ) 
+                                    ? QueryExecutionFactory.create(query) 
+                                    : QueryExecutionFactory.create(query, 
dataset) ) {
                 if ( query.isSelectType() )
                     runTestSelect(query, qe) ;
                 else if ( query.isConstructType() )
@@ -174,7 +169,7 @@ public class QueryTest extends EarlTestC
                     runTestDescribe(query, qe) ;
                 else if ( query.isAskType() )
                     runTestAsk(query, qe) ;
-            } finally { qe.close() ; }
+            }
         }
         catch (IOException ioEx)
         {

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/negation/TestGraphDeltas.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/negation/TestGraphDeltas.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/negation/TestGraphDeltas.java
 (original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/negation/TestGraphDeltas.java
 Thu Jul 31 10:52:54 2014
@@ -116,12 +116,9 @@ public class TestGraphDeltas {
     }
 
     private void testQuery(Dataset ds, String query, String queryName, int 
differences) {
-        QueryExecution qe = QueryExecutionFactory.create(query, ds);
-        try {
+        try(QueryExecution qe = QueryExecutionFactory.create(query, ds)) {
             ResultSetRewindable results = 
ResultSetFactory.makeRewindable(qe.execSelect());
             Assert.assertEquals(queryName + " gave incorrect results", 
differences, results.size());
-        } finally {
-            qe.close();
         }
     }
 

Modified: 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/util/TestFmtUtils.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/util/TestFmtUtils.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/util/TestFmtUtils.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/util/TestFmtUtils.java 
Thu Jul 31 10:52:54 2014
@@ -61,10 +61,10 @@ public class TestFmtUtils
         basicPattern.add(getTriple()) ;
         basicPattern.add(getTriple2()) ;
         ByteArrayOutputStream os = new ByteArrayOutputStream() ;
-        IndentedWriter iw = new IndentedWriter(os) ;
-        SerializationContext sc = new SerializationContext() ;
-        FmtUtils.formatPattern(iw, basicPattern, sc) ;
-        iw.close() ;
+        try(IndentedWriter iw = new IndentedWriter(os)) {
+            SerializationContext sc = new SerializationContext() ;
+            FmtUtils.formatPattern(iw, basicPattern, sc) ;
+        }
         assertEquals("<n1> <n2> \"l3\" .\n" + "<nb1> <nb2> \"lb3\" .", new 
String(os.toByteArray())) ;
     }
 

Modified: 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestBlockUTF8.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestBlockUTF8.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestBlockUTF8.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestBlockUTF8.java 
Thu Jul 31 10:52:54 2014
@@ -244,9 +244,9 @@ public class TestBlockUTF8 extends BaseT
     {
         try {
             ByteArrayOutputStream bout = new ByteArrayOutputStream() ;
-            Writer out = new OutputStreamWriter(bout, utf8) ;
-            out.write(x) ;
-            out.close() ;
+            try(Writer out = new OutputStreamWriter(bout, utf8)) {
+                out.write(x) ;
+            }
             byte[] bytes = bout.toByteArray() ;
             return bytes ;
         } catch (IOException ex) { throw new RuntimeException(ex) ; } 

Modified: 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestStreamUTF8.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestStreamUTF8.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestStreamUTF8.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/org/apache/jena/atlas/io/TestStreamUTF8.java 
Thu Jul 31 10:52:54 2014
@@ -82,15 +82,12 @@ public class TestStreamUTF8 extends Base
 
                 ByteArrayInputStream bin = new ByteArrayInputStream(bytes) ;
                 // Create string from bytes
-                InStreamUTF8 r = new InStreamUTF8(bin) ;
-                //Get tests working.
-                //Reader r = new InputStreamReader(bin, utf8) ;
-
-                char[] cbuff = new char[x.length()*10] ;    // Way too big
-                int len = r.read(cbuff) ;
-                String str = new String(cbuff, 0 , len) ;
-                assertEquals(x, str) ;
-                r.close();
+                try(InStreamUTF8 r = new InStreamUTF8(bin)) {
+                    char[] cbuff = new char[x.length()*10] ;    // Way too big
+                    int len = r.read(cbuff) ;
+                    String str = new String(cbuff, 0 , len) ;
+                    assertEquals(x, str) ;
+                }
             } catch (IOException ex) { throw new RuntimeException(ex) ; } 
         }
 
@@ -99,9 +96,9 @@ public class TestStreamUTF8 extends Base
             try {
                 byte[] bytes = stringAsBytes(x) ;
                 ByteArrayOutputStream bout = new ByteArrayOutputStream() ;
-                Writer out = new OutStreamUTF8(bout) ;
-                out.write(x) ;
-                out.close() ;
+                try(Writer out = new OutStreamUTF8(bout)) {
+                    out.write(x) ;
+                }
                 byte[] bytes2 = bout.toByteArray() ;
                 assertArrayEquals(bytes, bytes2) ;
             } catch (IOException ex) { throw new RuntimeException(ex) ; } 
@@ -111,9 +108,9 @@ public class TestStreamUTF8 extends Base
         {
             try {
                 ByteArrayOutputStream bout = new ByteArrayOutputStream() ;
-                Writer out = new OutputStreamWriter(bout, utf8) ;
-                out.write(x) ;
-                out.close() ;
+                try(Writer out = new OutputStreamWriter(bout, utf8)) {
+                    out.write(x) ;
+                }
                 byte[] bytes = bout.toByteArray() ;
                 return bytes ;
             } catch (IOException ex) { throw new RuntimeException(ex) ; } 

Modified: 
jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- 
jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java 
(original)
+++ 
jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java 
Thu Jul 31 10:52:54 2014
@@ -145,16 +145,16 @@ public class TestJenaReaderRIOT extends 
         filename = filename(filename) ;
         
         // Read with a base
-        FileInputStream in0 = new FileInputStream(filename) ;
-        Model m0 = ModelFactory.createDefaultModel() ;
-        RDFDataMgr.read(m0, in0, "http://example/base2";, 
RDFLanguages.nameToLang(lang)) ;
-        in0.close() ;
+        try(FileInputStream in0 = new FileInputStream(filename)) {
+            Model m0 = ModelFactory.createDefaultModel() ;
+            RDFDataMgr.read(m0, in0, "http://example/base2";, 
RDFLanguages.nameToLang(lang)) ;
+        }
 
         // Read again, but without base
-        FileInputStream in1 = new FileInputStream(filename) ;
-        Model m1 = ModelFactory.createDefaultModel() ;
-        RDFDataMgr.read(m1, in1, RDFLanguages.nameToLang(lang)) ;
-        in1.close() ;
+        try(FileInputStream in1 = new FileInputStream(filename)) {
+            Model m1 = ModelFactory.createDefaultModel() ;
+            RDFDataMgr.read(m1, in1, RDFLanguages.nameToLang(lang)) ;
+        }
         
         // Fail because Jena core does a look up of lang with ModelCom builtin 
in RDFReaderF, then calls RIOReader().
         // 1/ Fix Jena - remove RDFReaderF
@@ -162,9 +162,9 @@ public class TestJenaReaderRIOT extends 
         
         // Read via Jena API.
         Model m2 = ModelFactory.createDefaultModel() ;
-        FileInputStream in2 = new FileInputStream(filename) ;
-        m2.read(in2, "http://example/base3";, lang) ;
-        in2.close() ;
+        try(FileInputStream in2 = new FileInputStream(filename)) {
+            m2.read(in2, "http://example/base3";, lang) ;
+        }
         
         String x = FileUtils.readWholeFileAsUTF8(filename) ;
         Model m3 = ModelFactory.createDefaultModel() ;

Modified: 
jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java
URL: 
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java?rev=1614857&r1=1614856&r2=1614857&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java 
(original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java 
Thu Jul 31 10:52:54 2014
@@ -154,15 +154,15 @@ public class TestReadData extends BaseTe
         
         // Read with a base
         Dataset ds0 = DatasetFactory.createMem() ;
-        FileInputStream in0 = new FileInputStream(filename) ;
-        RDFDataMgr.read(ds0, in0, "http://example/base2";, lang) ;
-        in0.close() ;
-
+        try(FileInputStream in0 = new FileInputStream(filename)) {
+            RDFDataMgr.read(ds0, in0, "http://example/base2";, lang) ;
+        }
+        
         // Read again, but without base
         Dataset ds1 = DatasetFactory.createMem() ;
-        FileInputStream in1 = new FileInputStream(filename) ;
-        RDFDataMgr.read(ds1, in1, null, lang) ;
-        in1.close() ;
+        try(FileInputStream in1 = new FileInputStream(filename)) {
+            RDFDataMgr.read(ds1, in1, null, lang) ;
+        }
     }
     
     private static Model loadModel(String uri)


Reply via email to