Repository: hadoop Updated Branches: refs/heads/trunk 143c59e4c -> c37346d0e
HADOOP-12726. Unsupported FS operations should throw UnsupportedOperationException. Contributed by Daniel Templeton. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c37346d0 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c37346d0 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c37346d0 Branch: refs/heads/trunk Commit: c37346d0e3f9d39d0aec7a9c5bda3e9772aa969b Parents: 143c59e Author: Chris Douglas <cdoug...@apache.org> Authored: Tue Aug 23 14:05:57 2016 -0700 Committer: Chris Douglas <cdoug...@apache.org> Committed: Tue Aug 23 14:12:52 2016 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/hadoop/fs/ChecksumFileSystem.java | 6 ++++-- .../src/main/java/org/apache/hadoop/fs/ChecksumFs.java | 3 ++- .../main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java | 3 ++- .../main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java | 4 ++-- .../apache/hadoop/metrics2/sink/RollingFileSystemSink.java | 6 +++--- .../hadoop-common/src/site/markdown/filesystem/filesystem.md | 8 ++++---- .../main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java | 3 ++- .../org/apache/hadoop/fs/s3native/NativeS3FileSystem.java | 3 ++- 8 files changed, 21 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java index 1f14c4d..e4c0b33 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFileSystem.java @@ -356,12 +356,14 @@ public abstract class ChecksumFileSystem extends FilterFileSystem { @Override public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Append is not supported " + + "by ChecksumFileSystem"); } @Override public boolean truncate(Path f, long newLength) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Truncate is not supported " + + "by ChecksumFileSystem"); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFs.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFs.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFs.java index 2b632a1..6e98db5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFs.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ChecksumFs.java @@ -297,7 +297,8 @@ public abstract class ChecksumFs extends FilterFs { @Override public boolean truncate(Path f, long newLength) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Truncate is not supported " + + "by ChecksumFs"); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java index d429c42..f1afacd 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java @@ -288,7 +288,8 @@ public class FTPFileSystem extends FileSystem { @Override public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Append is not supported " + + "by FTPFileSystem"); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java index 8b6267a..30cf4d3 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/sftp/SFTPFileSystem.java @@ -77,7 +77,6 @@ public class SFTPFileSystem extends FileSystem { "Can't make directory for path \"%s\" under \"%s\"."; public static final String E_DIR_NOTEMPTY = "Directory: %s is not empty."; public static final String E_FILE_CHECK_FAILED = "File check failed"; - public static final String E_NOT_SUPPORTED = "Not supported"; public static final String E_SPATH_NOTEXIST = "Source path %s does not exist"; public static final String E_DPATH_EXIST = "Destination path %s already exist, cannot rename!"; @@ -578,7 +577,8 @@ public class SFTPFileSystem extends FileSystem { public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { - throw new IOException(E_NOT_SUPPORTED); + throw new UnsupportedOperationException("Append is not supported " + + "by SFTPFileSystem"); } /* http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSink.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSink.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSink.java index 9bfd519..91942f5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSink.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/sink/RollingFileSystemSink.java @@ -485,10 +485,10 @@ public class RollingFileSystemSink implements MetricsSink, Closeable { try { fs.append(basePath); + } catch (UnsupportedOperationException ex) { + canAppend = false; } catch (IOException ex) { - if (ex.getMessage().equals("Not supported")) { - canAppend = false; - } + // Ignore. The operation is supported. } return canAppend; http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md b/hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md index 72dbc3c..1587842 100644 --- a/hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md +++ b/hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md @@ -611,7 +611,7 @@ this precondition fails. ### `FSDataOutputStream append(Path p, int bufferSize, Progressable progress)` -Implementations MAY throw `UnsupportedOperationException`. +Implementations without a compliant call SHOULD throw `UnsupportedOperationException`. #### Preconditions @@ -630,7 +630,7 @@ by appending data to the existing list. ### `FSDataInputStream open(Path f, int bufferSize)` -Implementations MAY throw `UnsupportedOperationException`. +Implementations without a compliant call SHOULD throw `UnsupportedOperationException`. #### Preconditions @@ -944,7 +944,7 @@ to the `DFSFileSystem` implementation is an ongoing matter for debate. Joins multiple blocks together to create a single file. This is a little-used operation currently implemented only by HDFS. -Implementations MAY throw `UnsupportedOperationException` +Implementations without a compliant call SHOULD throw `UnsupportedOperationException`. #### Preconditions @@ -989,7 +989,7 @@ from specification. Truncate file `p` to the specified `newLength`. -Implementations MAY throw `UnsupportedOperationException`. +Implementations without a compliant call SHOULD throw `UnsupportedOperationException`. #### Preconditions http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java index 7231349..f8c65da 100644 --- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java +++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java @@ -633,7 +633,8 @@ public class S3AFileSystem extends FileSystem { */ public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Append is not supported " + + "by S3AFileSystem"); } http://git-wip-us.apache.org/repos/asf/hadoop/blob/c37346d0/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java index bebb09e..f741298 100644 --- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java +++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3native/NativeS3FileSystem.java @@ -421,7 +421,8 @@ public class NativeS3FileSystem extends FileSystem { @Override public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException { - throw new IOException("Not supported"); + throw new UnsupportedOperationException("Append is not supported " + + "by NativeS3FileSystem"); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org