Mark Payne created NIFI-6420:
--------------------------------
Summary: Controller Service references not properly tracked if
multiple references from same component
Key: NIFI-6420
URL: https://issues.apache.org/jira/browse/NIFI-6420
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Reporter: Mark Payne
The StandardControllerServiceNode keeps track of any references to it via
`addReference` and `removeReference` methods. However, if a Processor (or
another Controller Service) has two different properties that reference the
service, then the references can become incorrect.
This is due to the fact that when Properties are set for a component, we
determine that Property A previously referenced Service 123 but no longer does
and call `removeReference` on Service 123. However, if Property B also is
referencing Service 123, we have a condition where the Processor is referencing
Service 123, but Service 123 does not know about it, because of the call to
`removeReference`.
We should either be storing references as a `List` in
`StandardControllerServiceNode` or else should determine whether or not all
references have been removed before calling `removeReference`. I suspect that
the latter is less error-prone, given that calls to `addReference` currently
are idempotent and changing the data structure to a `List` would mean that the
method is no longer idempotent.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)