diff --git a/hadoop-ozone/cli-shell/src/main/java/org/apache/hadoop/ozone/shell/keys/PutKeyHandler.java b/hadoop-ozone/cli-shell/src/main/java/org/apache/hadoop/ozone/shell/keys/PutKeyHandler.java index 30543f790749..65d1bbc0eea5 100644 --- a/hadoop-ozone/cli-shell/src/main/java/org/apache/hadoop/ozone/shell/keys/PutKeyHandler.java +++ b/hadoop-ozone/cli-shell/src/main/java/org/apache/hadoop/ozone/shell/keys/PutKeyHandler.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.RandomAccessFile; +import java.io.FileNotFoundException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Files; @@ -81,6 +82,9 @@ protected void execute(OzoneClient client, OzoneAddress address) String keyName = address.getKeyName(); File dataFile = new File(fileName); + if (!dataFile.exists()) { + throw new FileNotFoundException("Error: File not found: " + fileName); + } if (isVerbose()) { try (InputStream stream = Files.newInputStream(dataFile.toPath())) { diff --git a/hadoop-ozone/dist/src/main/smoketest/basic/ozone-shell-lib.robot b/hadoop-ozone/dist/src/main/smoketest/basic/ozone-shell-lib.robot index 16d8f6febfcc..cbbc511595f3 100644 --- a/hadoop-ozone/dist/src/main/smoketest/basic/ozone-shell-lib.robot +++ b/hadoop-ozone/dist/src/main/smoketest/basic/ozone-shell-lib.robot @@ -131,8 +131,8 @@ Test ozone shell errors ${result} = Execute and checkrc ozone sh bucket create ${protocol}${server}/${volume}/bucket1 255 Should contain ${result} QUOTA_ERROR Execute and checkrc ozone sh volume delete ${protocol}${server}/${volume} 0 - - + ${result} = Execute and checkrc ozone sh key put ${protocol}${server}/${volume}/bucket1/key1 sample.txt 255 + Should Match Regexp ${result} Error: File not found: .* Test Volume Acls [arguments] ${protocol} ${server} ${volume}