Program: 50716
Project: 50716
Buggy source:
public static Address pickAddress(final ServerSocketChannel serverSocketChannel) throws Exception {
  String currentAddress=null;
  try {
    final Config config=Config.get();
    final String localAddress=System.getProperty("String_Node_Str");
    currentAddress=InetAddress.getByName(localAddress).getHostAddress().trim();
    if (currentAddress == null || currentAddress.length() == 0 || currentAddress.equalsIgnoreCase("String_Node_Str") || currentAddress.equals("String_Node_Str")) {
      boolean matchFound=false;
      final Enumeration<NetworkInterface> enums=NetworkInterface.getNetworkInterfaces();
      interfaces:       while (enums.hasMoreElements()) {
        final NetworkInterface ni=enums.nextElement();
        final Enumeration<InetAddress> e=ni.getInetAddresses();
        while (e.hasMoreElements()) {
          final InetAddress inetAddress=e.nextElement();
          if (inetAddress instanceof Inet4Address) {
            final String address=inetAddress.getHostAddress();
            if (!inetAddress.isLoopbackAddress()) {
              currentAddress=address;
              if (config.interfaces.enabled) {
                if (matchAddress(address)) {
                  matchFound=true;
                  break interfaces;
                }
              }
 else {
                break interfaces;
              }
            }
          }
        }
      }
      if (config.interfaces.enabled && !matchFound) {
        String msg="String_Node_Str";
        msg+="String_Node_Str";
        logger.log(Level.SEVERE,msg);
        Node.get().dumpCore(null);
        return null;
      }
    }
    final InetAddress inetAddress=InetAddress.getByName(currentAddress);
    ServerSocket serverSocket=serverSocketChannel.socket();
    serverSocket.setReuseAddress(false);
    InetSocketAddress isa=null;
    int port=config.port;
    socket:     for (int i=0; i < 100; i++) {
      try {
        isa=new InetSocketAddress(inetAddress,port);
        serverSocket.bind(isa,100);
        break socket;
      }
 catch (      final Exception e) {
        serverSocket=serverSocketChannel.socket();
        serverSocket.setReuseAddress(false);
        port++;
        continue socket;
      }
    }
    serverSocketChannel.configureBlocking(false);
    final Address selectedAddress=new Address(currentAddress,port);
    return selectedAddress;
  }
 catch (  final Exception e) {
    Node.get().dumpCore(e);
    e.printStackTrace();
    throw e;
  }
}

Fixed version (ground truth):
public static Address pickAddress(final ServerSocketChannel serverSocketChannel) throws Exception {
  String currentAddress=null;
  try {
    final Config config=Config.get();
    final String localAddress=System.getProperty("String_Node_Str");
    if (localAddress != null) {
      currentAddress=InetAddress.getByName(localAddress.trim()).getHostAddress();
    }
    if (currentAddress == null) {
      final Enumeration<NetworkInterface> enums=NetworkInterface.getNetworkInterfaces();
      interfaces:       while (enums.hasMoreElements()) {
        final NetworkInterface ni=enums.nextElement();
        final Enumeration<InetAddress> e=ni.getInetAddresses();
        while (e.hasMoreElements()) {
          final InetAddress inetAddress=e.nextElement();
          if (inetAddress instanceof Inet4Address) {
            final String address=inetAddress.getHostAddress();
            if (config.interfaces.enabled) {
              if (matchAddress(address)) {
                currentAddress=address;
                break interfaces;
              }
            }
 else {
              if (!inetAddress.isLoopbackAddress()) {
                currentAddress=address;
                break interfaces;
              }
            }
          }
        }
      }
      if (config.interfaces.enabled && currentAddress == null) {
        String msg="String_Node_Str";
        msg+="String_Node_Str";
        logger.log(Level.SEVERE,msg);
        Node.get().dumpCore(null);
        return null;
      }
    }
    if (currentAddress == null) {
      currentAddress="String_Node_Str";
    }
    final InetAddress inetAddress=InetAddress.getByName(currentAddress);
    ServerSocket serverSocket=serverSocketChannel.socket();
    serverSocket.setReuseAddress(false);
    InetSocketAddress isa=null;
    int port=config.port;
    socket:     for (int i=0; i < 100; i++) {
      try {
        isa=new InetSocketAddress(inetAddress,port);
        serverSocket.bind(isa,100);
        break socket;
      }
 catch (      final Exception e) {
        serverSocket=serverSocketChannel.socket();
        serverSocket.setReuseAddress(false);
        port++;
        continue socket;
      }
    }
    serverSocketChannel.configureBlocking(false);
    final Address selectedAddress=new Address(currentAddress,port);
    return selectedAddress;
  }
 catch (  final Exception e) {
    Node.get().dumpCore(e);
    e.printStackTrace();
    throw e;
  }
}