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

    https://github.com/apache/brooklyn-library/pull/147#discussion_r169108985
  
    --- Diff: 
software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java
 ---
    @@ -425,6 +443,20 @@ public void update() {
             }
         }
     
    +    @Override
    +    public void changeServerPool(String groupId) {
    +        Group newGroup = (Group) 
getManagementContext().getEntityManager().getEntity(groupId);
    +        if (newGroup == null) {
    +            throw new IllegalArgumentException("Group '"+groupId+"' not 
found");
    +        }
    +        
    +        config().set(SERVER_POOL, newGroup);
    +        if (hasServerPoolMemberTrackingPolicy()) {
    --- End diff --
    
    The behaviour here is a bit odd; if `serverPoolMemberTrackerPolicy` is 
`null`, then `hasServerPoolMemberTrackingPolicy` will iterate the `policies()` 
and if it finds a suitable policy will set it to 
`serverPoolMemberTrackerPolicy` and return true;  so 
`addServerPoolMemberTrackingPolicy` will be called, which will promptly remove 
the `serverPoolMemberTrackerPolicy` and do another iteration through the 
`policies()`, so finding (presumably) the same one as just before and setting 
it again. 


---

Reply via email to