Program: 50311
Project: 50311
Buggy source:
public Node(FactoryImpl factory,Config config){
  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="String_Node_Str";
  String build="String_Node_Str";
  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 void onRelease(    Packet packet){
      if (packet.released) {
        throw new RuntimeException("String_Node_Str");
      }
      packet.released=true;
    }
    @Override public void onObtain(    Packet packet){
      packet.reset();
      packet.released=false;
    }
    public Packet createNew(){
      return new Packet();
    }
  }
;
  clusterImpl=new ClusterImpl(this,localMember);
  baseVariables=new NodeBaseVariables(address,localMember);
  this.loggingService=new LoggingServiceImpl(config.getGroupConfig().getName(),localMember);
  this.logger=loggingService.getLogger(Node.class.getName());
  clusterService=new ClusterService(this);
  clusterService.start();
  inSelector=new InSelector(this,serverSocketChannel);
  outSelector=new OutSelector(this);
  connectionManager=new ConnectionManager(this);
  clientService=new ClientService(this);
  clusterManager=new ClusterManager(this);
  executorManager=new ExecutorManager(this);
  concurrentMapManager=new ConcurrentMapManager(this);
  blockingQueueManager=new BlockingQueueManager(this);
  listenerManager=new ListenerManager(this);
  topicManager=new TopicManager(this);
  clusterService.enqueueAndReturn(new Processable(){
    public void process(){
      clusterManager.addMember(getThisAddress(),NodeType.MEMBER);
    }
  }
);
  textCommandService=new TextCommandServiceImpl(this);
  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.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="String_Node_Str";
  String build="String_Node_Str";
  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 void onRelease(    Packet packet){
      if (packet.released) {
        throw new RuntimeException("String_Node_Str");
      }
      packet.released=true;
    }
    @Override public void onObtain(    Packet packet){
      packet.reset();
      packet.released=false;
    }
    public Packet createNew(){
      return new Packet();
    }
  }
;
  clusterImpl=new ClusterImpl(this,localMember);
  baseVariables=new NodeBaseVariables(address,localMember);
  this.loggingService=new LoggingServiceImpl(config.getGroupConfig().getName(),localMember);
  this.logger=loggingService.getLogger(Node.class.getName());
  clusterService=new ClusterService(this);
  clusterService.start();
  inSelector=new InSelector(this,serverSocketChannel);
  outSelector=new OutSelector(this);
  connectionManager=new ConnectionManager(this);
  clientService=new ClientService(this);
  clusterManager=new ClusterManager(this);
  executorManager=new ExecutorManager(this);
  concurrentMapManager=new ConcurrentMapManager(this);
  blockingQueueManager=new BlockingQueueManager(this);
  listenerManager=new ListenerManager(this);
  topicManager=new TopicManager(this);
  clusterService.enqueueAndReturn(new Processable(){
    public void process(){
      clusterManager.addMember(getThisAddress(),localNodeType);
    }
  }
);
  textCommandService=new TextCommandServiceImpl(this);
  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;
}