You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2015/10/06 15:27:40 UTC

[3/3] metamodel git commit: Reverted changes to FileHelper to avoid file-locking

Reverted changes to FileHelper to avoid file-locking

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/de873792
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/de873792
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/de873792

Branch: refs/heads/master
Commit: de873792c8a209011b1822e0873fc43f6ca2562e
Parents: 4feb932
Author: Kasper Sørensen <i....@gmail.com>
Authored: Tue Oct 6 15:25:26 2015 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Tue Oct 6 15:25:26 2015 +0200

----------------------------------------------------------------------
 .../org/apache/metamodel/util/FileHelper.java   | 44 ++++++++------------
 .../apache/metamodel/csv/CsvDataContext.java    |  2 +
 2 files changed, 19 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/de873792/core/src/main/java/org/apache/metamodel/util/FileHelper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/util/FileHelper.java b/core/src/main/java/org/apache/metamodel/util/FileHelper.java
index 0ff06a8..1a6b701 100644
--- a/core/src/main/java/org/apache/metamodel/util/FileHelper.java
+++ b/core/src/main/java/org/apache/metamodel/util/FileHelper.java
@@ -426,42 +426,32 @@ public final class FileHelper {
     public static void copy(Resource from, Resource to) throws IllegalStateException {
         assert from.isExists();
 
-        if (from instanceof FileResource && to instanceof FileResource) {
-            final File fromFile = ((FileResource) from).getFile();
-            final File toFile = ((FileResource) to).getFile();
-            copy(fromFile, toFile);
-            return;
-        }
-
-        final InputStream fromStream = from.read();
+        final InputStream in = from.read();
         try {
-            if (to instanceof FileResource) {
-                final File toFile = ((FileResource) to).getFile();
-                try {
-                    Files.copy(fromStream, toFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
-                } catch (IOException e) {
-                    throw new IllegalStateException(e);
-                }
-            } else {
-                final OutputStream toStream = to.write();
-                try {
-                    copy(fromStream, toStream);
-                } finally {
-                    safeClose(toStream);
-                }
+            final OutputStream out = to.write();
+            try {
+                copy(in, out);
+            } finally {
+                safeClose(out);
             }
         } finally {
-            safeClose(fromStream);
+            safeClose(in);
         }
     }
 
     public static void copy(File from, File to) throws IllegalStateException {
         assert from.exists();
-
+        
+        final InputStream in = getInputStream(from);
         try {
-            Files.copy(from.toPath(), to.toPath(), StandardCopyOption.REPLACE_EXISTING);
-        } catch (IOException e) {
-            throw new IllegalStateException(e);
+            final OutputStream out = getOutputStream(to);
+            try {
+                copy(in, out);
+            } finally {
+                safeClose(out);
+            }
+        } finally {
+            safeClose(in);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/metamodel/blob/de873792/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java
----------------------------------------------------------------------
diff --git a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java
index 8c23b7a..3787453 100644
--- a/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java
+++ b/csv/src/main/java/org/apache/metamodel/csv/CsvDataContext.java
@@ -360,10 +360,12 @@ public final class CsvDataContext extends QueryPostprocessDataContext implements
             for (int i = 0; i < lineNumber; i++) {
                 String line = reader.readLine();
                 if (line == null) {
+                    FileHelper.safeClose(reader);
                     return new EmptyDataSet(columns);
                 }
             }
         } catch (IOException e) {
+            FileHelper.safeClose(reader);
             throw new MetaModelException("IOException occurred while reading from CSV resource: " + _resource, e);
         }