Program: 49694
Project: 49694
Buggy source:
private HazelcastClient(ClientConfig config){
  if (config.getCredentials() == null) {
    config.setCredentials(new UsernamePasswordCredentials(config.getGroupConfig().getName(),config.getGroupConfig().getPassword()));
  }
  this.config=config;
  this.id=clientIdCounter.incrementAndGet();
  lifecycleService=new LifecycleServiceClientImpl(this);
  lifecycleService.fireLifecycleEvent(STARTING);
  connectionManager=new ConnectionManager(this,config,lifecycleService);
  connectionManager.setBinder(new DefaultClientBinder(this));
  out=new OutRunnable(this,calls,new PacketWriter());
  in=new InRunnable(this,out,calls,new PacketReader());
  listenerManager=new ListenerManager(this);
  try {
    final Connection c=connectionManager.getInitConnection();
    if (c == null) {
      connectionManager.shutdown();
      throw new IllegalStateException("String_Node_Str");
    }
  }
 catch (  IOException e) {
    connectionManager.shutdown();
    throw new ClusterClientException(e.getMessage(),e);
  }
  final String prefix="String_Node_Str" + this.id + "String_Node_Str";
  new Thread(out,prefix + "String_Node_Str").start();
  new Thread(in,prefix + "String_Node_Str").start();
  new Thread(listenerManager,prefix + "String_Node_Str").start();
  clusterClientProxy=new ClusterClientProxy(this);
  partitionClientProxy=new PartitionClientProxy(this);
  if (config.isUpdateAutomatic()) {
    this.getCluster().addMembershipListener(connectionManager);
    connectionManager.updateMembers();
  }
  lifecycleService.fireLifecycleEvent(STARTED);
  connectionManager.scheduleHeartbeatTimerTask();
  lsClients.add(HazelcastClient.this);
}

Fixed version (ground truth):
private HazelcastClient(ClientConfig config){
  if (config.getAddressList().size() == 0) {
    config.addAddress("String_Node_Str");
  }
  if (config.getCredentials() == null) {
    config.setCredentials(new UsernamePasswordCredentials(config.getGroupConfig().getName(),config.getGroupConfig().getPassword()));
  }
  this.config=config;
  this.id=clientIdCounter.incrementAndGet();
  lifecycleService=new LifecycleServiceClientImpl(this);
  lifecycleService.fireLifecycleEvent(STARTING);
  connectionManager=new ConnectionManager(this,config,lifecycleService);
  connectionManager.setBinder(new DefaultClientBinder(this));
  out=new OutRunnable(this,calls,new PacketWriter());
  in=new InRunnable(this,out,calls,new PacketReader());
  listenerManager=new ListenerManager(this);
  try {
    final Connection c=connectionManager.getInitConnection();
    if (c == null) {
      connectionManager.shutdown();
      throw new IllegalStateException("String_Node_Str");
    }
  }
 catch (  IOException e) {
    connectionManager.shutdown();
    throw new ClusterClientException(e.getMessage(),e);
  }
  final String prefix="String_Node_Str" + this.id + "String_Node_Str";
  new Thread(out,prefix + "String_Node_Str").start();
  new Thread(in,prefix + "String_Node_Str").start();
  new Thread(listenerManager,prefix + "String_Node_Str").start();
  clusterClientProxy=new ClusterClientProxy(this);
  partitionClientProxy=new PartitionClientProxy(this);
  if (config.isUpdateAutomatic()) {
    this.getCluster().addMembershipListener(connectionManager);
    connectionManager.updateMembers();
  }
  lifecycleService.fireLifecycleEvent(STARTED);
  connectionManager.scheduleHeartbeatTimerTask();
  lsClients.add(HazelcastClient.this);
}