diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java index c8b56588cce..c28637eb4fa 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java @@ -820,7 +820,15 @@ public boolean setSafeMode(SafeModeAction action, boolean isChecked) @Override public void setReplication(String key, short replication) throws IOException { - OzoneKeyDetails keyDetails = bucket.getKey(key); + OzoneKeyDetails keyDetails = null; + try { + keyDetails = bucket.getKey(key); + } catch (OMException ome) { + if (ome.getResult() == KEY_NOT_FOUND) { + return; + } + throw ome; + } ReplicationConfig newReplication = OzoneClientUtils .resolveClientSideReplicationConfig(replication, null, null, config); 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 ef3a3e764da..c9ed01e83b4 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 @@ -401,7 +401,16 @@ protected void incrementCounter(Statistic objectsRead, long count) { public void setReplication(String key, short replication) throws IOException { OFSPath ofsPath = new OFSPath(key, config); OzoneBucket bucket = getBucket(ofsPath, false); - OzoneKeyDetails keyDetails = bucket.getKey(ofsPath.getKeyName()); + OzoneKeyDetails keyDetails = null; + try { + keyDetails = bucket.getKey(key); + } catch (OMException ome) { + // if key does not exist, do nothing + if (ome.getResult() == KEY_NOT_FOUND) { + return; + } + throw ome; + } ReplicationConfig newReplication = OzoneClientUtils .resolveClientSideReplicationConfig(replication, null, null, config);