Program: 50036
Project: 50036
Buggy source:
public Node(FactoryImpl factory,Config config){
  this.id=counter.incrementAndGet();
  this.threadGroup=new ThreadGroup(factory.getName());
  this.factory=factory;
  this.config=config;
  this.groupProperties=new GroupProperties(config);
  this.superClient=config.isSuperClient();
  this.localNodeType=(superClient) ? NodeType.SUPER_CLIENT : NodeType.MEMBER;
  String version=System.getProperty("String_Node_Str","String_Node_Str");
  String build=System.getProperty("String_Node_Str","String_Node_Str");
  if ("String_Node_Str".equals(version) || "String_Node_Str".equals(build)) {
    try {
      InputStream inRuntimeProperties=Node.class.getClassLoader().getResourceAsStream("String_Node_Str");
      if (inRuntimeProperties != null) {
        Properties runtimeProperties=new Properties();
        runtimeProperties.load(inRuntimeProperties);
        version=runtimeProperties.getProperty("String_Node_Str");
        build=runtimeProperties.getProperty("String_Node_Str");
      }
    }
 catch (    Exception ignored) {
    }
  }
  int tmpBuildNumber=0;
  try {
    tmpBuildNumber=Integer.getInteger("String_Node_Str",-1);
    if (tmpBuildNumber == -1) {
      tmpBuildNumber=Integer.parseInt(build);
    }
  }
 catch (  Exception ignored) {
  }
  buildNumber=tmpBuildNumber;
  ServerSocketChannel serverSocketChannel;
  Address localAddress=null;
  try {
    final String preferIPv4Stack=System.getProperty("String_Node_Str");
    final String preferIPv6Address=System.getProperty("String_Node_Str");
    if (preferIPv6Address == null && preferIPv4Stack == null) {
      System.setProperty("String_Node_Str","String_Node_Str");
    }
    serverSocketChannel=ServerSocketChannel.open();
    AddressPicker addressPicker=new AddressPicker(this,serverSocketChannel);
    localAddress=addressPicker.pickAddress();
    localAddress.setThisAddress(true);
  }
 catch (  Throwable e) {
    throw new RuntimeException(e);
  }
  address=localAddress;
  localMember=new MemberImpl(address,true,localNodeType);
  packetPool=new NoneStrictObjectPool<Packet>(2000){
    @Override public Packet obtain(){
      return createNew();
    }
    @Override public boolean release(    Packet packet){
      return true;
    }
    @Override public void onObtain(    Packet packet){
    }
    @Override public void onRelease(    Packet packet){
    }
    public Packet createNew(){
      return new Packet();
    }
  }
;
  this.loggingService=new LoggingServiceImpl(config.getGroupConfig().getName(),localMember);
  this.logger=loggingService.getLogger(Node.class.getName());
  clusterImpl=new ClusterImpl(this,localMember);
  baseVariables=new NodeBaseVariables(address,localMember);
  clusterService=new ClusterService(this);
  clusterService.start();
  inSelector=new InSelector(this,serverSocketChannel);
  outSelector=new OutSelector(this);
  connectionManager=new ConnectionManager(this);
  clusterManager=new ClusterManager(this);
  executorManager=new ExecutorManager(this);
  clientService=new ClientService(this);
  concurrentMapManager=new ConcurrentMapManager(this);
  blockingQueueManager=new BlockingQueueManager(this);
  listenerManager=new ListenerManager(this);
  topicManager=new TopicManager(this);
  textCommandService=new TextCommandServiceImpl(this);
  clusterManager.addMember(false,localMember);
  ILogger systemLogger=getLogger("String_Node_Str");
  systemLogger.log(Level.INFO,"String_Node_Str" + version + "String_Node_Str"+ build+ "String_Node_Str"+ address);
  systemLogger.log(Level.INFO,"String_Node_Str");
  Join join=config.getNetworkConfig().getJoin();
  MulticastService mcService=null;
  try {
    if (join.getMulticastConfig().isEnabled()) {
      MulticastSocket multicastSocket=new MulticastSocket(null);
      multicastSocket.setReuseAddress(true);
      multicastSocket.bind(new InetSocketAddress(join.getMulticastConfig().getMulticastPort()));
      multicastSocket.setTimeToLive(32);
      multicastSocket.setInterface(address.getInetAddress());
      multicastSocket.setReceiveBufferSize(1024);
      multicastSocket.setSendBufferSize(1024);
      multicastSocket.joinGroup(InetAddress.getByName(join.getMulticastConfig().getMulticastGroup()));
      multicastSocket.setSoTimeout(1000);
      mcService=new MulticastService(this,multicastSocket);
      mcService.addMulticastListener(new NodeMulticastListener(this));
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    logger.log(Level.SEVERE,e.getMessage(),e);
  }
  this.multicastService=mcService;
}

Fixed version (ground truth):
public Node(FactoryImpl factory,Config config){
  this.id=counter.incrementAndGet();
  this.threadGroup=new ThreadGroup(factory.getName());
  this.factory=factory;
  this.config=config;
  this.groupProperties=new GroupProperties(config);
  this.superClient=config.isSuperClient();
  this.localNodeType=(superClient) ? NodeType.SUPER_CLIENT : NodeType.MEMBER;
  String version=System.getProperty("String_Node_Str","String_Node_Str");
  String build=System.getProperty("String_Node_Str","String_Node_Str");
  if ("String_Node_Str".equals(version) || "String_Node_Str".equals(build)) {
    try {
      InputStream inRuntimeProperties=Node.class.getClassLoader().getResourceAsStream("String_Node_Str");
      if (inRuntimeProperties != null) {
        Properties runtimeProperties=new Properties();
        runtimeProperties.load(inRuntimeProperties);
        version=runtimeProperties.getProperty("String_Node_Str");
        build=runtimeProperties.getProperty("String_Node_Str");
      }
    }
 catch (    Exception ignored) {
    }
  }
  int tmpBuildNumber=0;
  try {
    tmpBuildNumber=Integer.getInteger("String_Node_Str",-1);
    if (tmpBuildNumber == -1) {
      tmpBuildNumber=Integer.parseInt(build);
    }
  }
 catch (  Exception ignored) {
  }
  buildNumber=tmpBuildNumber;
  ServerSocketChannel serverSocketChannelTemp=null;
  Address localAddress=null;
  try {
    final String preferIPv4Stack=System.getProperty("String_Node_Str");
    final String preferIPv6Address=System.getProperty("String_Node_Str");
    if (preferIPv6Address == null && preferIPv4Stack == null) {
      System.setProperty("String_Node_Str","String_Node_Str");
    }
    serverSocketChannelTemp=ServerSocketChannel.open();
    AddressPicker addressPicker=new AddressPicker(this,serverSocketChannelTemp);
    localAddress=addressPicker.pickAddress();
    localAddress.setThisAddress(true);
  }
 catch (  Throwable e) {
    throw new RuntimeException(e);
  }
  serverSocketChannel=serverSocketChannelTemp;
  address=localAddress;
  localMember=new MemberImpl(address,true,localNodeType);
  packetPool=new NoneStrictObjectPool<Packet>(2000){
    @Override public Packet obtain(){
      return createNew();
    }
    @Override public boolean release(    Packet packet){
      return true;
    }
    @Override public void onObtain(    Packet packet){
    }
    @Override public void onRelease(    Packet packet){
    }
    public Packet createNew(){
      return new Packet();
    }
  }
;
  this.loggingService=new LoggingServiceImpl(config.getGroupConfig().getName(),localMember);
  this.logger=loggingService.getLogger(Node.class.getName());
  clusterImpl=new ClusterImpl(this,localMember);
  baseVariables=new NodeBaseVariables(address,localMember);
  clusterService=new ClusterService(this);
  clusterService.start();
  inSelector=new InSelector(this,serverSocketChannel);
  outSelector=new OutSelector(this);
  connectionManager=new ConnectionManager(this);
  clusterManager=new ClusterManager(this);
  executorManager=new ExecutorManager(this);
  clientService=new ClientService(this);
  concurrentMapManager=new ConcurrentMapManager(this);
  blockingQueueManager=new BlockingQueueManager(this);
  listenerManager=new ListenerManager(this);
  topicManager=new TopicManager(this);
  textCommandService=new TextCommandServiceImpl(this);
  clusterManager.addMember(false,localMember);
  ILogger systemLogger=getLogger("String_Node_Str");
  systemLogger.log(Level.INFO,"String_Node_Str" + version + "String_Node_Str"+ build+ "String_Node_Str"+ address);
  systemLogger.log(Level.INFO,"String_Node_Str");
  Join join=config.getNetworkConfig().getJoin();
  MulticastService mcService=null;
  try {
    if (join.getMulticastConfig().isEnabled()) {
      MulticastSocket multicastSocket=new MulticastSocket(null);
      multicastSocket.setReuseAddress(true);
      multicastSocket.bind(new InetSocketAddress(join.getMulticastConfig().getMulticastPort()));
      multicastSocket.setTimeToLive(32);
      multicastSocket.setInterface(address.getInetAddress());
      multicastSocket.setReceiveBufferSize(1024);
      multicastSocket.setSendBufferSize(1024);
      multicastSocket.joinGroup(InetAddress.getByName(join.getMulticastConfig().getMulticastGroup()));
      multicastSocket.setSoTimeout(1000);
      mcService=new MulticastService(this,multicastSocket);
      mcService.addMulticastListener(new NodeMulticastListener(this));
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    logger.log(Level.SEVERE,e.getMessage(),e);
  }
  this.multicastService=mcService;
}