code: public void initialize() throws Throwable
     {
        if (peers != null && !initialized)
        {
           for (String addr : peers)
           {
              if (trace)
                 log.tracef("Peer: %s", addr);
  
              try
              {
                 // Let other node know of us
                 sendMessage(addr, Request.JOIN, getOwnAddress());
  
                 // Update the local information
                 Set<Address> workManagers = (Set<Address>)sendMessage(addr, Request.GET_WORKMANAGERS);
  
                 if (trace)
                    log.tracef("Peer WorkManagers: %s", workManagers);
  
                 if (workManagers != null)
                 {
                    for (Address a : workManagers)
                    {
                       join(a, addr);
  
                       long shortRunningFree =
                          (long)sendMessage(addr, Request.GET_SHORTRUNNING_FREE, a);
                       long longRunningFree =
                          (long)sendMessage(addr, Request.GET_LONGRUNNING_FREE, a);
  
                       localUpdateShortRunningFree(a, shortRunningFree);
                       localUpdateLongRunningFree(a, longRunningFree);
                    }
                 }
              }
              catch (Throwable t)
              {
                 log.error(t.getMessage(), t);
              }
           }
        }
  
        initialized = true;
     }
docs: {@inheritDoc}