Github user mcgilman commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2990#discussion_r218531396
  
    --- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
 ---
    @@ -1060,7 +1069,8 @@ public ProcessGroupStatusDTO 
createProcessGroupStatusDto(final ProcessGroup proc
             final Collection<RemoteProcessGroupStatus> 
childRemoteProcessGroupStatusCollection = 
processGroupStatus.getRemoteProcessGroupStatus();
             if (childRemoteProcessGroupStatusCollection != null) {
                 for (final RemoteProcessGroupStatus 
childRemoteProcessGroupStatus : childRemoteProcessGroupStatusCollection) {
    -                final RemoteProcessGroupStatusDTO 
childRemoteProcessGroupStatusDto = 
createRemoteProcessGroupStatusDto(childRemoteProcessGroupStatus);
    +                final RemoteProcessGroup childRemoteProcessGroup = 
processGroup.getRemoteProcessGroup(childRemoteProcessGroupStatus.getId());
    --- End diff --
    
    The way this method is called recursively the `childRemoteProcessGroup` is 
not necessarily a child of `processGroup`. This can be seen by creating a 
`RemoteProcessGroup` in a nested `ProcessGroup`. Then open the Summary table. 
You'll see an NPE.
    
    I think the fix is pretty trivial. We are actually already getting the 
`remoteProcessGroup` one line below using the recursive `findXxx` method. 
Moving this line up and using identifier from the status and not the DTO should 
address the problem.


---

Reply via email to