Program: 87032
Project: 87032
Buggy source:
/** 
 * Setup the multicast facilities.
 * @throws java.io.IOException
 */
public void setupNetworking() throws IOException {
  if (NetworkUtil.getNetworkInterface() == null) {
    LOG.error("String_Node_Str");
    return;
  }
  try {
    if (!NetworkUtil.getNetworkInterface().supportsMulticast()) {
      LOG.error("String_Node_Str");
      return;
    }
  }
 catch (  SocketException ex) {
    LOG.error("String_Node_Str",ex);
    return;
  }
  try {
    if (NetworkUtil.getNetworkInterface() == null || !NetworkUtil.getNetworkInterface().isUp()) {
      LOG.error("String_Node_Str");
      return;
    }
  }
 catch (  SocketException ex) {
    LOG.error("String_Node_Str",ex);
    return;
  }
  socket=new MulticastSocket(multicastPort);
  socket.setReuseAddress(true);
  socket.setTimeToLive(multicastTtl);
  group=InetAddress.getByName(multicastGroup);
switch (Parameters.INSTANCE.currentOS()) {
case MAC_64:
case MAC_32:
    socket.joinGroup(new InetSocketAddress(group,multicastPort),NetworkUtil.getNetworkInterface());
  break;
case WIN_64:
case WIN_32:
case LINUX_64:
case LINUX_32:
default :
socket.joinGroup(group);
break;
}
try {
GossipMessage message=new GossipMessage(me.getIp(),me.getGossipPort(),me.getDataPort());
message.setMillisecondsSinceMidnight(TimeUtil.getMillisecondsSinceMidnight());
message.getTags().putAll(me.getTags());
message.getMembers().add(MemberKey.getKey(me));
message.getClock().add(me.getSequence().incrementAndGet());
message.setPublicKey(me.getPublicKey());
sendMessage(message);
}
 catch (IOException ex) {
LOG.error("String_Node_Str",ex);
}
}

Fixed version (ground truth):
/** 
 * Setup the multicast facilities.
 * @throws java.io.IOException
 */
public void setupNetworking() throws IOException {
  if (NetworkUtil.getNetworkInterface() == null) {
    LOG.error("String_Node_Str");
    return;
  }
  try {
    if (!NetworkUtil.getNetworkInterface().supportsMulticast()) {
      LOG.error("String_Node_Str");
      return;
    }
  }
 catch (  SocketException ex) {
    LOG.error("String_Node_Str",ex);
    return;
  }
  try {
    if (NetworkUtil.getNetworkInterface() == null || !NetworkUtil.getNetworkInterface().isUp()) {
      LOG.error("String_Node_Str");
      return;
    }
  }
 catch (  SocketException ex) {
    LOG.error("String_Node_Str",ex);
    return;
  }
  socket=new MulticastSocket(multicastPort);
  socket.setReuseAddress(true);
  socket.setTimeToLive(multicastTtl);
  group=InetAddress.getByName(multicastGroup);
switch (Parameters.INSTANCE.currentOS()) {
case MAC_64:
case MAC_32:
case WIN_64:
case WIN_32:
case LINUX_64:
case LINUX_32:
default :
    socket.joinGroup(new InetSocketAddress(group,multicastPort),NetworkUtil.getNetworkInterface());
  break;
}
try {
GossipMessage message=new GossipMessage(me.getIp(),me.getGossipPort(),me.getDataPort());
message.setMillisecondsSinceMidnight(TimeUtil.getMillisecondsSinceMidnight());
message.getTags().putAll(me.getTags());
message.getMembers().add(MemberKey.getKey(me));
message.getClock().add(me.getSequence().incrementAndGet());
message.setPublicKey(me.getPublicKey());
sendMessage(message);
}
 catch (IOException ex) {
LOG.error("String_Node_Str",ex);
}
}