Program: 50644
Project: 50644
Buggy source:
private static void init(){
  if (!inited) {
synchronized (Node.class) {
      if (startCount > 0) {
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException ignored) {
        }
      }
      if (!inited) {
        node=Node.get();
        node.start();
        inited=true;
        startCount++;
        ManagementService.register(node.getClusterImpl());
        try {
          globalProxies.addEntryListener(new EntryListener(){
            public void entryAdded(            EntryEvent event){
              final ProxyKey proxyKey=(ProxyKey)event.getKey();
              if (!proxies.containsKey(proxyKey)) {
                logger.log(Level.FINEST,"String_Node_Str" + proxyKey);
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    createProxy(proxyKey);
                  }
                }
);
              }
            }
            public void entryRemoved(            EntryEvent event){
              final ProxyKey proxyKey=(ProxyKey)event.getKey();
              if (proxies.containsKey(proxyKey)) {
                logger.log(Level.FINEST,"String_Node_Str" + proxyKey);
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    destroyProxy(proxyKey);
                  }
                }
);
              }
            }
            public void entryUpdated(            EntryEvent event){
              logger.log(Level.FINEST,"String_Node_Str" + event.getKey());
            }
          }
,false);
          if (Hazelcast.getCluster().getMembers().size() > 1) {
            Set<ProxyKey> proxyKeys=globalProxies.allKeys();
            for (            final ProxyKey proxyKey : proxyKeys) {
              if (!proxies.containsKey(proxyKey)) {
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    createProxy(proxyKey);
                  }
                }
);
              }
            }
          }
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
}

Fixed version (ground truth):
private static void init(){
  if (!inited) {
synchronized (Node.class) {
      if (startCount > 0) {
        try {
          Thread.sleep(5000);
        }
 catch (        InterruptedException ignored) {
        }
      }
      if (!inited) {
        node=Node.get();
        node.start();
        inited=true;
        startCount++;
        ManagementService.register(node.getClusterImpl());
        try {
          globalProxies.addEntryListener(new EntryListener(){
            public void entryAdded(            EntryEvent event){
              final ProxyKey proxyKey=(ProxyKey)event.getKey();
              if (!proxies.containsKey(proxyKey)) {
                logger.log(Level.FINEST,"String_Node_Str" + proxyKey);
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    createProxy(proxyKey);
                  }
                }
);
              }
            }
            public void entryRemoved(            EntryEvent event){
              final ProxyKey proxyKey=(ProxyKey)event.getKey();
              if (proxies.containsKey(proxyKey)) {
                logger.log(Level.FINEST,"String_Node_Str" + proxyKey);
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    destroyProxy(proxyKey);
                  }
                }
);
              }
            }
            public void entryUpdated(            EntryEvent event){
              logger.log(Level.FINEST,"String_Node_Str" + event.getKey());
            }
            public void entryEvicted(            EntryEvent event){
              logger.log(Level.FINEST,"String_Node_Str" + event.getKey());
            }
          }
,false);
          if (Hazelcast.getCluster().getMembers().size() > 1) {
            Set<ProxyKey> proxyKeys=globalProxies.allKeys();
            for (            final ProxyKey proxyKey : proxyKeys) {
              if (!proxies.containsKey(proxyKey)) {
                ClusterService.get().enqueueAndReturn(new Processable(){
                  public void process(){
                    createProxy(proxyKey);
                  }
                }
);
              }
            }
          }
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
}