NIFI-15012 - FlowDifferenceFilters - fix handling of createControllerService() #10342
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
NIFI-15012 - FlowDifferenceFilters - fix handling of createControllerService()
In NIFI-14995, we tried to properly handle the case where a property is added to hold a newly created controller service but the logic was not correct in terms of how migrateProperties is called and the sequence of objects creation.
We only looked up the new property through the live
ComponentNode
to confirm it identified a controller service. In the real migration sequence, the property is added to the versioned component before there’s a live node (the component is a freshly imported controller service), sogetComponent(...)
returnednull
, the property was ignored, and the context never saw the controller-service ID. Without that linkage, the correspondingCOMPONENT_ADDED
diff wasn’t marked as environmental, leaving both the property addition and the service creation visible as local changes.We are improving the logic to properly handle this scenario.
getPropertyValue
,getVersionedPropertyDescriptor
,isControllerServiceProperty
), so we can recognize when aPROPERTY_ADDED
points at a controller service even if the live component node is not present.controllerServicePropertyAddsByValue
) and matches them against the IDs reported in accompanyingCOMPONENT_ADDED
diffs, using both instance and versioned identifiers.serviceIdsCreatedForNewProperties
), and reuses that context inisControllerServiceCreatedForNewProperty
.Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000
NIFI-00000
Pull Request Formatting
main
branchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
./mvnw clean install -P contrib-check
Licensing
LICENSE
andNOTICE
filesDocumentation