Program: 50378
Project: 50378
Buggy source:
public FactoryImpl(String name,Config config){
  this.name=name;
  node=new Node(this,config);
  final ILogger logger=node.getLogger(FactoryImpl.class.getName());
  transactionFactory=new TransactionFactory(this);
  hazelcastInstanceProxy=new HazelcastInstanceProxy(this);
  node.start();
  locksMapProxy=new MProxyImpl("String_Node_Str",this);
  idGeneratorMapProxy=new MProxyImpl("String_Node_Str",this);
  globalProxies=new MProxyImpl("String_Node_Str",this);
  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);
        node.clusterService.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);
        node.clusterService.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 (node.getClusterImpl().getMembers().size() > 1) {
    Set<ProxyKey> proxyKeys=globalProxies.allKeys();
    for (    final ProxyKey proxyKey : proxyKeys) {
      if (!proxies.containsKey(proxyKey)) {
        node.clusterService.enqueueAndReturn(new Processable(){
          public void process(){
            createProxy(proxyKey);
          }
        }
);
      }
    }
  }
}

Fixed version (ground truth):
public FactoryImpl(String name,Config config){
  this.name=name;
  node=new Node(this,config);
  globalProxies=new MProxyImpl("String_Node_Str",this);
  final ILogger logger=node.getLogger(FactoryImpl.class.getName());
  transactionFactory=new TransactionFactory(this);
  hazelcastInstanceProxy=new HazelcastInstanceProxy(this);
  locksMapProxy=new MProxyImpl("String_Node_Str",this);
  idGeneratorMapProxy=new MProxyImpl("String_Node_Str",this);
  node.start();
  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);
        node.clusterService.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);
        node.clusterService.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 (node.getClusterImpl().getMembers().size() > 1) {
    Set<ProxyKey> proxyKeys=globalProxies.allKeys();
    for (    final ProxyKey proxyKey : proxyKeys) {
      if (!proxies.containsKey(proxyKey)) {
        node.clusterService.enqueueAndReturn(new Processable(){
          public void process(){
            createProxy(proxyKey);
          }
        }
);
      }
    }
  }
}