HADOOP-12726. Unsupported FS operations should throw UnsupportedOperationException. Contributed by Daniel Templeton.
This commit is contained in:
parent
143c59e4c5
commit
c37346d0e3
@ -356,12 +356,14 @@ public FSDataInputStream open(Path f, int bufferSize) throws IOException {
|
|||||||
@Override
|
@Override
|
||||||
public FSDataOutputStream append(Path f, int bufferSize,
|
public FSDataOutputStream append(Path f, int bufferSize,
|
||||||
Progressable progress) throws IOException {
|
Progressable progress) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Append is not supported "
|
||||||
|
+ "by ChecksumFileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean truncate(Path f, long newLength) throws IOException {
|
public boolean truncate(Path f, long newLength) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Truncate is not supported "
|
||||||
|
+ "by ChecksumFileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -297,7 +297,8 @@ public synchronized void seek(long pos) throws IOException {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean truncate(Path f, long newLength) throws IOException {
|
public boolean truncate(Path f, long newLength) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Truncate is not supported "
|
||||||
|
+ "by ChecksumFs");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -288,7 +288,8 @@ public void close() throws IOException {
|
|||||||
@Override
|
@Override
|
||||||
public FSDataOutputStream append(Path f, int bufferSize,
|
public FSDataOutputStream append(Path f, int bufferSize,
|
||||||
Progressable progress) throws IOException {
|
Progressable progress) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Append is not supported "
|
||||||
|
+ "by FTPFileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,7 +77,6 @@ public class SFTPFileSystem extends FileSystem {
|
|||||||
"Can't make directory for path \"%s\" under \"%s\".";
|
"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_DIR_NOTEMPTY = "Directory: %s is not empty.";
|
||||||
public static final String E_FILE_CHECK_FAILED = "File check failed";
|
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_SPATH_NOTEXIST = "Source path %s does not exist";
|
||||||
public static final String E_DPATH_EXIST =
|
public static final String E_DPATH_EXIST =
|
||||||
"Destination path %s already exist, cannot rename!";
|
"Destination path %s already exist, cannot rename!";
|
||||||
@ -578,7 +577,8 @@ public void close() throws IOException {
|
|||||||
public FSDataOutputStream append(Path f, int bufferSize,
|
public FSDataOutputStream append(Path f, int bufferSize,
|
||||||
Progressable progress)
|
Progressable progress)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
throw new IOException(E_NOT_SUPPORTED);
|
throw new UnsupportedOperationException("Append is not supported "
|
||||||
|
+ "by SFTPFileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -485,10 +485,10 @@ private boolean checkAppend(FileSystem fs) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
fs.append(basePath);
|
fs.append(basePath);
|
||||||
|
} catch (UnsupportedOperationException ex) {
|
||||||
|
canAppend = false;
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
if (ex.getMessage().equals("Not supported")) {
|
// Ignore. The operation is supported.
|
||||||
canAppend = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return canAppend;
|
return canAppend;
|
||||||
|
@ -611,7 +611,7 @@ this precondition fails.
|
|||||||
|
|
||||||
### `FSDataOutputStream append(Path p, int bufferSize, Progressable progress)`
|
### `FSDataOutputStream append(Path p, int bufferSize, Progressable progress)`
|
||||||
|
|
||||||
Implementations MAY throw `UnsupportedOperationException`.
|
Implementations without a compliant call SHOULD throw `UnsupportedOperationException`.
|
||||||
|
|
||||||
#### Preconditions
|
#### Preconditions
|
||||||
|
|
||||||
@ -630,7 +630,7 @@ by appending data to the existing list.
|
|||||||
|
|
||||||
### `FSDataInputStream open(Path f, int bufferSize)`
|
### `FSDataInputStream open(Path f, int bufferSize)`
|
||||||
|
|
||||||
Implementations MAY throw `UnsupportedOperationException`.
|
Implementations without a compliant call SHOULD throw `UnsupportedOperationException`.
|
||||||
|
|
||||||
#### Preconditions
|
#### 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
|
Joins multiple blocks together to create a single file. This
|
||||||
is a little-used operation currently implemented only by HDFS.
|
is a little-used operation currently implemented only by HDFS.
|
||||||
|
|
||||||
Implementations MAY throw `UnsupportedOperationException`
|
Implementations without a compliant call SHOULD throw `UnsupportedOperationException`.
|
||||||
|
|
||||||
#### Preconditions
|
#### Preconditions
|
||||||
|
|
||||||
@ -989,7 +989,7 @@ from specification.
|
|||||||
|
|
||||||
Truncate file `p` to the specified `newLength`.
|
Truncate file `p` to the specified `newLength`.
|
||||||
|
|
||||||
Implementations MAY throw `UnsupportedOperationException`.
|
Implementations without a compliant call SHOULD throw `UnsupportedOperationException`.
|
||||||
|
|
||||||
#### Preconditions
|
#### Preconditions
|
||||||
|
|
||||||
|
@ -633,7 +633,8 @@ public FSDataOutputStream create(Path f, FsPermission permission,
|
|||||||
*/
|
*/
|
||||||
public FSDataOutputStream append(Path f, int bufferSize,
|
public FSDataOutputStream append(Path f, int bufferSize,
|
||||||
Progressable progress) throws IOException {
|
Progressable progress) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Append is not supported "
|
||||||
|
+ "by S3AFileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -421,7 +421,8 @@ protected URI canonicalizeUri(URI rawUri) {
|
|||||||
@Override
|
@Override
|
||||||
public FSDataOutputStream append(Path f, int bufferSize,
|
public FSDataOutputStream append(Path f, int bufferSize,
|
||||||
Progressable progress) throws IOException {
|
Progressable progress) throws IOException {
|
||||||
throw new IOException("Not supported");
|
throw new UnsupportedOperationException("Append is not supported "
|
||||||
|
+ "by NativeS3FileSystem");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user