[ 
https://issues.apache.org/jira/browse/NIFI-11978?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tamas Palfy updated NIFI-11978:
-------------------------------
    Description: 
-With https://issues.apache.org/jira/browse/NIFI-11556 controller services 
implement the GroupedComponent interface. However Management Controller 
Services (the ones available and managed from the Controller Settings) don’t 
have groups.-

With https://issues.apache.org/jira/browse/NIFI-11556 when verifying if we can 
update controller service referencing components we check if the Process Group 
of the Controller Service allows scheduling of components individually. However 
this part of the change didn't take into account that Management Controller 
Services don't belong to any Process Group and a NullPointerException is thrown 
when we try to disable one:

{code:java}
public class StandardControllerServiceDAO extends ComponentDAO implements 
ControllerServiceDAO {
    ...
    @Override
    public void verifyUpdateReferencingComponents(final String 
controllerServiceId, final ScheduledState scheduledState, final 
ControllerServiceState controllerServiceState) {
        final ControllerServiceNode controllerService = 
locateControllerService(controllerServiceId);

        
controllerService.getProcessGroup().verifyCanScheduleComponentsIndividually();
{code}
which throws NullPointerException (as there is no process group).

Tagging [~markap14] and [~exceptionfactory] as author and reviewer of 
NIFI-11556  

  was:
With https://issues.apache.org/jira/browse/NIFI-11556 controller services 
implement the GroupedComponent interface. However Management Controller 
Services (the ones available and managed from the Controller Settings) don’t 
have groups.

Not sure about the extent of the issues but I can confirm a concrete one: the 
management controller services can’t be disabled because that requires a check 
of the referencing components and the logic includes
{code:java}
public class StandardControllerServiceDAO extends ComponentDAO implements 
ControllerServiceDAO {
    ...
    @Override
    public void verifyUpdateReferencingComponents(final String 
controllerServiceId, final ScheduledState scheduledState, final 
ControllerServiceState controllerServiceState) {
        final ControllerServiceNode controllerService = 
locateControllerService(controllerServiceId);

        
controllerService.getProcessGroup().verifyCanScheduleComponentsIndividually();
{code}
which throws NullPointerException (as there is no process group).

Tagging [~markap14] and [~exceptionfactory] as author and reviewer of 
NIFI-11556  


> NPE when trying to disable Management Controller Service
> --------------------------------------------------------
>
>                 Key: NIFI-11978
>                 URL: https://issues.apache.org/jira/browse/NIFI-11978
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>            Reporter: Tamas Palfy
>            Assignee: Tamas Palfy
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> -With https://issues.apache.org/jira/browse/NIFI-11556 controller services 
> implement the GroupedComponent interface. However Management Controller 
> Services (the ones available and managed from the Controller Settings) don’t 
> have groups.-
> With https://issues.apache.org/jira/browse/NIFI-11556 when verifying if we 
> can update controller service referencing components we check if the Process 
> Group of the Controller Service allows scheduling of components individually. 
> However this part of the change didn't take into account that Management 
> Controller Services don't belong to any Process Group and a 
> NullPointerException is thrown when we try to disable one:
> {code:java}
> public class StandardControllerServiceDAO extends ComponentDAO implements 
> ControllerServiceDAO {
>     ...
>     @Override
>     public void verifyUpdateReferencingComponents(final String 
> controllerServiceId, final ScheduledState scheduledState, final 
> ControllerServiceState controllerServiceState) {
>         final ControllerServiceNode controllerService = 
> locateControllerService(controllerServiceId);
>         
> controllerService.getProcessGroup().verifyCanScheduleComponentsIndividually();
> {code}
> which throws NullPointerException (as there is no process group).
> Tagging [~markap14] and [~exceptionfactory] as author and reviewer of 
> NIFI-11556  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to