adoroszlai commented on a change in pull request #649: HDDS-3120. Freon work with OM HA. URL: https://github.com/apache/hadoop-ozone/pull/649#discussion_r390599201
########## File path: hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/BaseFreonGenerator.java ########## @@ -374,53 +369,37 @@ public String generateObjectName(long counter) { /** * Create missing target volume/bucket. */ - public void ensureVolumeAndBucketExist(OzoneConfiguration ozoneConfiguration, + public void ensureVolumeAndBucketExist(OzoneClient rpcClient, String volumeName, String bucketName) throws IOException { - try (OzoneClient rpcClient = OzoneClientFactory - .getRpcClient(ozoneConfiguration)) { + OzoneVolume volume; + ensureVolumeExists(rpcClient, volumeName); + volume = rpcClient.getObjectStore().getVolume(volumeName); - OzoneVolume volume = null; - try { - volume = rpcClient.getObjectStore().getVolume(volumeName); - } catch (OMException ex) { - if (ex.getResult() == ResultCodes.VOLUME_NOT_FOUND) { - rpcClient.getObjectStore().createVolume(volumeName); - volume = rpcClient.getObjectStore().getVolume(volumeName); - } else { - throw ex; - } - } - - try { - volume.getBucket(bucketName); - } catch (OMException ex) { - if (ex.getResult() == ResultCodes.BUCKET_NOT_FOUND) { - volume.createBucket(bucketName); - } else { - throw ex; - } + try { + volume.getBucket(bucketName); + } catch (OMException ex) { + if (ex.getResult() == ResultCodes.BUCKET_NOT_FOUND) { + volume.createBucket(bucketName); + } else { + throw ex; } } + } /** * Create missing target volume. */ public void ensureVolumeExists( - OzoneConfiguration ozoneConfiguration, + OzoneClient rpcClient, String volumeName) throws IOException { - try (OzoneClient rpcClient = OzoneClientFactory - .getRpcClient(ozoneConfiguration)) { - - try { - rpcClient.getObjectStore().getVolume(volumeName); - } catch (OMException ex) { - if (ex.getResult() == ResultCodes.VOLUME_NOT_FOUND) { - rpcClient.getObjectStore().createVolume(volumeName); - } + try { + rpcClient.getObjectStore().getVolume(volumeName); + } catch (OMException ex) { + if (ex.getResult() == ResultCodes.VOLUME_NOT_FOUND) { + rpcClient.getObjectStore().createVolume(volumeName); Review comment: Should `throw ex` in `else` branch, otherwise volume creation fails silently and will run into NPE elsewhere. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org