You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tr...@apache.org on 2018/07/04 11:23:45 UTC

[2/2] flink git commit: [FLINK-9622] Do not swallow exceptions in FileUtils#copy

[FLINK-9622] Do not swallow exceptions in FileUtils#copy

This closes #6244.


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

Branch: refs/heads/master
Commit: acb8edc2d42d5f16014d10b7aa42bba2f2f8267f
Parents: a3bc2bd
Author: Till Rohrmann <tr...@apache.org>
Authored: Wed Jul 4 12:13:10 2018 +0200
Committer: Till Rohrmann <tr...@apache.org>
Committed: Wed Jul 4 12:13:48 2018 +0200

----------------------------------------------------------------------
 .../java/org/apache/flink/util/FileUtils.java   | 41 ++++++++++++--------
 .../org/apache/flink/util/FileUtilsTest.java    |  2 +-
 2 files changed, 25 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/acb8edc2/flink-core/src/main/java/org/apache/flink/util/FileUtils.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/util/FileUtils.java b/flink-core/src/main/java/org/apache/flink/util/FileUtils.java
index 713ed61..23af2e8 100644
--- a/flink-core/src/main/java/org/apache/flink/util/FileUtils.java
+++ b/flink-core/src/main/java/org/apache/flink/util/FileUtils.java
@@ -333,26 +333,33 @@ public final class FileUtils {
 		FileSystem tFS = FileSystem.getUnguardedFileSystem(targetPath.toUri());
 		if (!tFS.exists(targetPath)) {
 			if (sFS.getFileStatus(sourcePath).isDir()) {
-				tFS.mkdirs(targetPath);
-				FileStatus[] contents = sFS.listStatus(sourcePath);
-				for (FileStatus content : contents) {
-					String distPath = content.getPath().toString();
-					if (content.isDir()) {
-						if (distPath.endsWith("/")) {
-							distPath = distPath.substring(0, distPath.length() - 1);
-						}
-					}
-					String localPath = targetPath.toString() + distPath.substring(distPath.lastIndexOf("/"));
-					copy(content.getPath(), new Path(localPath), executable);
-				}
+				internalCopyDirectory(sourcePath, targetPath, executable, sFS, tFS);
 			} else {
-				try (FSDataOutputStream lfsOutput = tFS.create(targetPath, FileSystem.WriteMode.NO_OVERWRITE); FSDataInputStream fsInput = sFS.open(sourcePath)) {
-					IOUtils.copyBytes(fsInput, lfsOutput);
-					//noinspection ResultOfMethodCallIgnored
-					new File(targetPath.toString()).setExecutable(executable);
-				} catch (IOException ignored) {
+				internalCopyFile(sourcePath, targetPath, executable, sFS, tFS);
+			}
+		}
+	}
+
+	private static void internalCopyDirectory(Path sourcePath, Path targetPath, boolean executable, FileSystem sFS, FileSystem tFS) throws IOException {
+		tFS.mkdirs(targetPath);
+		FileStatus[] contents = sFS.listStatus(sourcePath);
+		for (FileStatus content : contents) {
+			String distPath = content.getPath().toString();
+			if (content.isDir()) {
+				if (distPath.endsWith("/")) {
+					distPath = distPath.substring(0, distPath.length() - 1);
 				}
 			}
+			String localPath = targetPath + distPath.substring(distPath.lastIndexOf("/"));
+			copy(content.getPath(), new Path(localPath), executable);
+		}
+	}
+
+	private static void internalCopyFile(Path sourcePath, Path targetPath, boolean executable, FileSystem sFS, FileSystem tFS) throws IOException {
+		try (FSDataOutputStream lfsOutput = tFS.create(targetPath, FileSystem.WriteMode.NO_OVERWRITE); FSDataInputStream fsInput = sFS.open(sourcePath)) {
+			IOUtils.copyBytes(fsInput, lfsOutput);
+			//noinspection ResultOfMethodCallIgnored
+			new File(targetPath.toString()).setExecutable(executable);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/flink/blob/acb8edc2/flink-core/src/test/java/org/apache/flink/util/FileUtilsTest.java
----------------------------------------------------------------------
diff --git a/flink-core/src/test/java/org/apache/flink/util/FileUtilsTest.java b/flink-core/src/test/java/org/apache/flink/util/FileUtilsTest.java
index b42ee22..23878cb 100644
--- a/flink-core/src/test/java/org/apache/flink/util/FileUtilsTest.java
+++ b/flink-core/src/test/java/org/apache/flink/util/FileUtilsTest.java
@@ -49,7 +49,7 @@ import static org.junit.Assume.assumeTrue;
 /**
  * Tests for the {@link FileUtils}.
  */
-public class FileUtilsTest {
+public class FileUtilsTest extends TestLogger {
 
 	@Rule
 	public final TemporaryFolder tmp = new TemporaryFolder();