Rob Fellows created NIFI-16550:
----------------------------------
Summary: Do not recurse into referencing components of a
referenceCycle node when collecting Controller Service revisions
Key: NIFI-16550
URL: https://issues.apache.org/jira/browse/NIFI-16550
Project: Apache NiFi
Issue Type: Bug
Components: Core UI
Reporter: Rob Fellows
h2. Problem
`ControllerServiceStateService.getReferencingComponentRevisions()` in
`nifi-frontend`
(`apps/nifi/src/app/service/controller-service-state.service.ts`) builds the
revision map sent with enable/disable and start/stop requests. It recurses into
each referencing component's `referencingComponents` without checking
`referenceCycle`.
The server (`StandardNiFiServiceFacade`) sets `referenceCycle` on a repeated
Controller Service and omits its `referencingComponents`, so the recursion
currently terminates. The client should not rely on the server omitting
children. A response that sets `referenceCycle` and still includes children
that loop back would recurse without a bound.
The reference listing UI already stops at `referenceCycle` nodes. The revision
collector should do the same.
h2. Scope
* In `getReferencingComponentRevisions()`, record the revision of a cycle node
as usual, but do not recurse into its `referencingComponents` when
`referenceCycle` is true.
* Keep the existing empty and missing-children handling.
h2. Acceptance Criteria
* A `referenceCycle` node with populated `referencingComponents` does not
contribute its descendants to the revision map.
* The cycle node's own revision is still included when it matches the filter
(Controller Service for service-only, Processor or Reporting Task otherwise).
* Missing or empty `referencingComponents` still terminate as before.
* A unit test covers a cycle node with child entries.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)