Github user markap14 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2219#discussion_r159513444
--- Diff:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardFlowSynchronizer.java
---
@@ -217,10 +225,22 @@ public void sync(final FlowController controller,
final DataFlow proposedFlow, f
unrootedControllerServiceElements =
DomUtils.getChildElementsByTagName(controllerServicesElement,
"controllerService");
}
+ final boolean registriesPresent;
+ final Element registriesElement =
DomUtils.getChild(rootElement, "registries");
+ if (registriesElement == null) {
+ registriesPresent = false;
+ } else {
+ final List<Element> flowRegistryElems =
DomUtils.getChildElementsByTagName(registriesElement, "flowRegistry");
+ registriesPresent = !flowRegistryElems.isEmpty();
+ }
+
logger.trace("Parsing process group from DOM");
final Element rootGroupElement = (Element)
rootElement.getElementsByTagName("rootGroup").item(0);
final ProcessGroupDTO rootGroupDto =
FlowFromDOMFactory.getProcessGroup(null, rootGroupElement, encryptor,
encodingVersion);
- existingFlowEmpty = taskElements.isEmpty() &&
unrootedControllerServiceElements.isEmpty() && isEmpty(rootGroupDto);
+ existingFlowEmpty = taskElements.isEmpty()
+ && unrootedControllerServiceElements.isEmpty()
+ && isEmpty(rootGroupDto)
+ && registriesPresent;
--- End diff --
Indeed it should - great catch! Will address.
---