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

    https://github.com/apache/nifi/pull/2515#discussion_r173858341
  
    --- Diff: 
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/http/endpoints/CurrentUserEndpointMerger.java
 ---
    @@ -53,6 +54,23 @@ protected void mergeResponses(final CurrentUserEntity 
clientEntity, final Map<No
                     mergePermissions(clientEntity.getPoliciesPermissions(), 
entity.getPoliciesPermissions());
                     mergePermissions(clientEntity.getProvenancePermissions(), 
entity.getProvenancePermissions());
                     mergePermissions(clientEntity.getTenantsPermissions(), 
entity.getTenantsPermissions());
    +                mergePermissions(clientEntity.getSystemPermissions(), 
entity.getSystemPermissions());
    +                mergePermissions(clientEntity.getTenantsPermissions(), 
entity.getTenantsPermissions());
    +
    +                final Set<ComponentRestrictionPermissionDTO> 
clientEntityComponentRestrictionsPermissions = 
clientEntity.getComponentRestrictionPermissions();
    +                final Set<ComponentRestrictionPermissionDTO> 
entityComponentRestrictionsPermissions = 
entity.getComponentRestrictionPermissions();
    +
    +                // only retain the component restriction permissions in 
common
    +                
clientEntityComponentRestrictionsPermissions.retainAll(entityComponentRestrictionsPermissions);
    +
    +                // merge the component restriction permissions
    +                
clientEntityComponentRestrictionsPermissions.forEach(clientEntityPermission -> {
    +                    final ComponentRestrictionPermissionDTO 
entityPermission = 
entityComponentRestrictionsPermissions.stream().filter(entityComponentRestrictionsPermission
 -> {
    +                        return 
entityComponentRestrictionsPermission.getRequiredPermission().getId().equals(clientEntityPermission.getRequiredPermission().getId());
    +                    }).findFirst().orElse(null);
    --- End diff --
    
    Are we guaranteed at this point that there will be at least one entry? If 
so, then we should probably just use findFirst().get() because it makes this 
more clear. If not, then we could end up with a null value here, and the next 
line would then throw a NPE.


---

Reply via email to