You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by sa...@apache.org on 2012/05/18 03:34:15 UTC

svn commit: r1339947 - /jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java

Author: sallen
Date: Fri May 18 01:34:15 2012
New Revision: 1339947

URL: http://svn.apache.org/viewvc?rev=1339947&view=rev
Log:
Extended IteratorResourceClosing to work with both org.openjena.atlas.lib.Closeable and java.io.Closeable resources.

Modified:
    jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java?rev=1339947&r1=1339946&r2=1339947&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/atlas/iterator/IteratorResourceClosing.java Fri May 18 01:34:15 2012
@@ -25,16 +25,23 @@ import org.openjena.atlas.io.IO;
 import org.openjena.atlas.lib.Closeable;
 
 /**
- * This iterator will automatically close a {@link java.io.Closeable} resource when the iterator is exhausted.
- * Alternatively, the resource will be closed when {@link #close()} is called.  An {@link AtlasException} will
- * be thrown if access is attempted after {@link #close()} has been called.
+ * This iterator will automatically close a {@link org.openjena.atlas.lib.Closeable} or {@link java.io.Closeable}
+ * resource when the iterator is exhausted.  Alternatively, the resource will be closed when {@link #close()} is
+ * called.  An {@link AtlasException} will be thrown if access is attempted after {@link #close()} has been called.
  */
 public class IteratorResourceClosing<T> implements Iterator<T>, Closeable
 {
     private final Iterator<T> iter ;
-    private final java.io.Closeable resource ;
+    private final Object resource ;
     private boolean finished;
     
+    public IteratorResourceClosing(Iterator<T> iter, Closeable resource)
+    {
+        this.iter = iter;
+        this.resource = resource;
+        this.finished = false;
+    }
+    
     public IteratorResourceClosing(Iterator<T> iter, java.io.Closeable resource)
     {
         this.iter = iter;
@@ -83,7 +90,17 @@ public class IteratorResourceClosing<T> 
         if (!finished)
         {
             Iter.close(iter) ;
-            IO.close(resource) ;
+            if (null != resource)
+            {
+                if (resource instanceof Closeable)
+                {
+                    ((Closeable)resource).close() ;
+                }
+                else
+                {
+                    IO.close((java.io.Closeable)resource) ;
+                }
+            }
             finished = true;
         }
     }