diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java index 97a7ac4c629f..3ddceadb460b 100644 --- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java +++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java @@ -2156,6 +2156,8 @@ public OzoneMultipartUploadList listMultipartUploads(String volumeName, @Override public OzoneFileStatus getOzoneFileStatus(String volumeName, String bucketName, String keyName) throws IOException { + verifyVolumeName(volumeName); + verifyBucketName(bucketName); OmKeyArgs keyArgs = new OmKeyArgs.Builder() .setVolumeName(volumeName) .setBucketName(bucketName) diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java index 109e19d13c9f..890efd56e804 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java @@ -659,20 +659,19 @@ public FileStatusAdapter getFileStatus(String path, URI uri, * valid bucket path or valid snapshot path. * Throws exception in case of failure. */ - private FileStatusAdapter getFileStatusForKeyOrSnapshot( - OFSPath ofsPath, URI uri, Path qualifiedPath, String userName) + private FileStatusAdapter getFileStatusForKeyOrSnapshot(OFSPath ofsPath, URI uri, Path qualifiedPath, String userName) throws IOException { + String volumeName = ofsPath.getVolumeName(); + String bucketName = ofsPath.getBucketName(); String key = ofsPath.getKeyName(); try { - OzoneBucket bucket = getBucket(ofsPath, false); if (ofsPath.isSnapshotPath()) { - OzoneVolume volume = objectStore.getVolume(ofsPath.getVolumeName()); - return getFileStatusAdapterWithSnapshotIndicator( - volume, bucket, uri); + OzoneVolume volume = objectStore.getVolume(volumeName); + OzoneBucket bucket = getBucket(volumeName, bucketName, false); + return getFileStatusAdapterWithSnapshotIndicator(volume, bucket, uri); } else { - OzoneFileStatus status = bucket.getFileStatus(key); - return toFileStatusAdapter(status, userName, uri, qualifiedPath, - ofsPath.getNonKeyPath()); + OzoneFileStatus status = proxy.getOzoneFileStatus(volumeName, bucketName, key); + return toFileStatusAdapter(status, userName, uri, qualifiedPath, ofsPath.getNonKeyPath()); } } catch (OMException e) { if (e.getResult() == OMException.ResultCodes.FILE_NOT_FOUND) {