NIFI-16286 - Prevent stale Parameter Context provenance from breaking context retrieval - #11618
Open
pvillard31 wants to merge 1 commit into
Open
NIFI-16286 - Prevent stale Parameter Context provenance from breaking context retrieval#11618pvillard31 wants to merge 1 commit into
pvillard31 wants to merge 1 commit into
Conversation
… context retrieval
exceptionfactory
requested changes
Sep 5, 2026
exceptionfactory
left a comment
Contributor
There was a problem hiding this comment.
Thanks for addressing this behavior of Parameter Contexts @pvillard31. The functional changes look straightforward, but I'm concerned about the test approach that attempts to capture System.err, as well as synchronizing on System.class. I would rather not assert any kind output than implement that kind of output capture strategy for expecting logs. One possibility could be pulling the behavior out to some kind of utility class, but on balance, it may be simpler and cleaner to just remove the capture and assert checks altogether.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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-16286 - Prevent stale Parameter Context provenance from breaking context retrieval
Parameter Context update requests can round-trip effective Parameter DTOs containing source-context metadata and incorrectly persist that client-supplied context ID on a locally accepted Parameter. If the referenced source context is later deleted, the stale provenance can cause Parameter Context listing, detail retrieval, or effective-update analysis to fail with
ResourceNotFoundException. Normalize locally accepted Parameters so ownership is determined by the target context, preserve valid inherited provenance, and make DTO rendering and update analysis tolerate missing or concurrently removed source contexts with value-safe warning diagnostics. Add unit, standalone, and clustered regression coverage for local, provided, asset-backed, inherited, missing-source, and concurrent-removal scenarios.Explanations for the changes:
StandardParameterContextDAONormalize the provenance of Parameters accepted as local definitions instead of copying
ParameterDTO.parameterContext.idfrom the request. This prevents response metadata round-tripped by a client from creating a local Parameter that incorrectly references another, potentially deleted, Parameter Context, while preserving values, sensitivity, descriptions, provider status, and asset references.DtoFactoryResolve a Parameter’s source through the inheritance graph first, then consult the global lookup only when the source is known to exist. If the source is missing or disappears during lookup, report the Parameter as locally defined and emit a value-safe warning instead of allowing
ResourceNotFoundExceptionto break Parameter Context listing or detail retrieval.StandardNiFiServiceFacadeApply the same missing-source containment while calculating effective Parameter updates and affected components. Valid inherited provenance remains unchanged, but an unresolved or concurrently removed source now falls back to the current context with a diagnostic warning rather than failing the update-analysis request.
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000NIFI-00000VerifiedstatusPull Request Formatting
mainbranchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
./mvnw clean install -P contrib-checkLicensing
LICENSEandNOTICEfilesDocumentation