NIFIREG-205: Allow Git repo to delete a flow with snapshot version 0
This closes #146.
Signed-off-by: Bryan Bende <bbende@apache.org>
diff --git a/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/provider/flow/git/GitFlowPersistenceProvider.java b/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/provider/flow/git/GitFlowPersistenceProvider.java
index f642632..e34c86f 100644
--- a/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/provider/flow/git/GitFlowPersistenceProvider.java
+++ b/nifi-registry-core/nifi-registry-framework/src/main/java/org/apache/nifi/registry/provider/flow/git/GitFlowPersistenceProvider.java
@@ -188,7 +188,14 @@
@Override
public void deleteAllFlowContent(String bucketId, String flowId) throws FlowPersistenceException {
final Bucket bucket = getBucketOrFail(bucketId);
- final Flow flow = getFlowOrFail(bucket, flowId);
+ final Optional<Flow> flowOpt = bucket.getFlow(flowId);
+ if (!flowOpt.isPresent()) {
+ logger.debug(format("Tried deleting all versions, but the Flow ID %s was not found in bucket %s:%s.",
+ flowId, bucket.getBucketDirName(), bucket.getBucketId()));
+ return;
+ }
+
+ final Flow flow = flowOpt.get();
final Optional<Integer> latestVersionOpt = flow.getLatestVersion();
if (!latestVersionOpt.isPresent()) {
throw new IllegalStateException("Flow version is not added yet, can not be deleted.");