logger.info("layout from EN4J: " + layout);
logger.debug("layout from EN4J: " + layout);
  protected void checkLoadBalance() {    // Don't load balance if community is not ready or is busy    if (autoLoadBalance() && communityReady && !isCommunityBusy()) {      if (!deadNodes.isEmpty() || !newNodes.isEmpty()) {        List excludedNodes = new ArrayList(getExcludedNodes());        // Remove occupied nodes from newNodes list        if (!newNodes.isEmpty()) {          for (Iterator it = newNodes.iterator(); it.hasNext(); ) {            String newNode = (String)it.next();            if (!isVacantNode(newNode) ||                excludedNodes.contains(newNode) ||                deadNodes.contains(newNode)) {              it.remove();            }          }        }        // invoke load balancer if there are new (vacant) nodes        if (!newNodes.isEmpty()) {          LoadBalancerListener lbl = new LoadBalancerListener() {            public void layoutReady(Map layout) {              logger.info("layout from EN4J: " + layout);              getLoadBalancer().moveAgents(layout);            }          };          logger.info("autoLoadBalance");          getLoadBalancer().doLayout(LoadBalancer.DEFAULT_ANNEAL_TIME,                                     true,                                     new ArrayList(newNodes),                                     new ArrayList(deadNodes),                                     excludedNodes,                                     lbl);        }        newNodes.clear();        //deadNodes.clear();      }    }  }