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);
}