Program: 80587
Project: 80587
Buggy source:
/** 
 * Creates the i/o handler and nio acceptor; ports and addresses are bound.
 * @throws IOException
 */
@Override public void afterPropertiesSet() throws Exception {
  acceptor=new NioSocketAcceptor(ioThreads);
  SocketSessionConfig sessionConf=acceptor.getSessionConfig();
  sessionConf.setReuseAddress(true);
  sessionConf.setTcpNoDelay(true);
  sessionConf.setSendBufferSize(sendBufferSize);
  sessionConf.setReadBufferSize(receiveBufferSize);
  acceptor.setCloseOnDeactivation(true);
  acceptor.setHandler(ioHandler);
  acceptor.setBacklog(64);
  acceptor.setReuseAddress(true);
  if (ioHandler == null) {
    ioHandler=new WebSocketHandler();
  }
  log.trace("String_Node_Str",ioHandler);
  DefaultIoFilterChainBuilder chain=acceptor.getFilterChain();
  SslFilter sslFilter=null;
  if (secureConfig != null) {
    try {
      sslFilter=secureConfig.getSslFilter();
      chain.addFirst("String_Node_Str",sslFilter);
    }
 catch (    Exception e) {
      log.warn("String_Node_Str",e);
    }
  }
  if (log.isTraceEnabled()) {
    chain.addLast("String_Node_Str",new LoggingFilter());
  }
  chain.addLast("String_Node_Str",new ProtocolCodecFilter(new WebSocketCodecFactory()));
  if (addresses.isEmpty()) {
    if (sslFilter != null) {
      log.info("String_Node_Str",port);
    }
 else {
      log.info("String_Node_Str",port);
    }
    acceptor.bind(new InetSocketAddress(port));
  }
 else {
    if (sslFilter != null) {
      log.info("String_Node_Str",addresses);
    }
 else {
      log.info("String_Node_Str",addresses);
    }
    try {
      Set<InetSocketAddress> socketAddresses=new HashSet<InetSocketAddress>();
      for (      String addr : addresses) {
        if (addr.indexOf(':') != -1) {
          String[] parts=addr.split("String_Node_Str");
          socketAddresses.add(new InetSocketAddress(parts[0],Integer.valueOf(parts[1])));
        }
 else {
          socketAddresses.add(new InetSocketAddress(addr,port));
        }
      }
      log.debug("String_Node_Str",socketAddresses.toString());
      acceptor.bind(socketAddresses);
    }
 catch (    Exception e) {
      log.error("String_Node_Str",e);
    }
  }
  log.info("String_Node_Str",(isSecure() ? "String_Node_Str" : "String_Node_Str"));
  if (log.isDebugEnabled()) {
    log.debug("String_Node_Str",acceptor.getSessionConfig().getSendBufferSize(),acceptor.getSessionConfig().getReadBufferSize());
  }
}

Fixed version (ground truth):
/** 
 * Creates the i/o handler and nio acceptor; ports and addresses are bound.
 * @throws IOException
 */
@Override public void afterPropertiesSet() throws Exception {
  acceptor=new NioSocketAcceptor(ioThreads);
  SocketSessionConfig sessionConf=acceptor.getSessionConfig();
  sessionConf.setReuseAddress(true);
  sessionConf.setTcpNoDelay(true);
  sessionConf.setSendBufferSize(sendBufferSize);
  sessionConf.setReadBufferSize(receiveBufferSize);
  acceptor.setCloseOnDeactivation(true);
  acceptor.setBacklog(64);
  acceptor.setReuseAddress(true);
  if (ioHandler == null) {
    ioHandler=new WebSocketHandler();
  }
  log.trace("String_Node_Str",ioHandler);
  acceptor.setHandler(ioHandler);
  DefaultIoFilterChainBuilder chain=acceptor.getFilterChain();
  SslFilter sslFilter=null;
  if (secureConfig != null) {
    try {
      sslFilter=secureConfig.getSslFilter();
      chain.addFirst("String_Node_Str",sslFilter);
    }
 catch (    Exception e) {
      log.warn("String_Node_Str",e);
    }
  }
  if (log.isTraceEnabled()) {
    chain.addLast("String_Node_Str",new LoggingFilter());
  }
  chain.addLast("String_Node_Str",new ProtocolCodecFilter(new WebSocketCodecFactory()));
  if (addresses.isEmpty()) {
    if (sslFilter != null) {
      log.info("String_Node_Str",port);
    }
 else {
      log.info("String_Node_Str",port);
    }
    acceptor.bind(new InetSocketAddress(port));
  }
 else {
    if (sslFilter != null) {
      log.info("String_Node_Str",addresses);
    }
 else {
      log.info("String_Node_Str",addresses);
    }
    try {
      Set<InetSocketAddress> socketAddresses=new HashSet<InetSocketAddress>();
      for (      String addr : addresses) {
        if (addr.indexOf(':') != -1) {
          String[] parts=addr.split("String_Node_Str");
          socketAddresses.add(new InetSocketAddress(parts[0],Integer.valueOf(parts[1])));
        }
 else {
          socketAddresses.add(new InetSocketAddress(addr,port));
        }
      }
      log.debug("String_Node_Str",socketAddresses.toString());
      acceptor.bind(socketAddresses);
    }
 catch (    Exception e) {
      log.error("String_Node_Str",e);
    }
  }
  log.info("String_Node_Str",(isSecure() ? "String_Node_Str" : "String_Node_Str"));
  if (log.isDebugEnabled()) {
    log.debug("String_Node_Str",acceptor.getSessionConfig().getSendBufferSize(),acceptor.getSessionConfig().getReadBufferSize());
  }
}