Program: 152244
Project: 152244
Buggy source:
/** 
 * @see Listener#start(FtpServerContext)
 */
public synchronized void start(FtpServerContext context){
  try {
    this.context=context;
    acceptor=new NioSocketAcceptor(Runtime.getRuntime().availableProcessors());
    if (getServerAddress() != null) {
      address=new InetSocketAddress(getServerAddress(),getPort());
    }
 else {
      address=new InetSocketAddress(getPort());
    }
    acceptor.setReuseAddress(true);
    acceptor.getSessionConfig().setReadBufferSize(2048);
    acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,getIdleTimeout());
    ((SocketSessionConfig)acceptor.getSessionConfig()).setReceiveBufferSize(512);
    MdcInjectionFilter mdcFilter=new MdcInjectionFilter();
    acceptor.getFilterChain().addLast("String_Node_Str",mdcFilter);
    acceptor.getFilterChain().addLast("String_Node_Str",new BlacklistFilter());
    updateBlacklistFilter();
    acceptor.getFilterChain().addLast("String_Node_Str",new ExecutorFilter(filterExecutor));
    acceptor.getFilterChain().addLast("String_Node_Str",new ProtocolCodecFilter(new FtpServerProtocolCodecFactory()));
    acceptor.getFilterChain().addLast("String_Node_Str",mdcFilter);
    acceptor.getFilterChain().addLast("String_Node_Str",new FtpLoggingFilter());
    if (isImplicitSsl()) {
      SslConfiguration ssl=getSslConfiguration();
      SslFilter sslFilter;
      try {
        sslFilter=new SslFilter(ssl.getSSLContext());
      }
 catch (      GeneralSecurityException e) {
        throw new FtpServerConfigurationException("String_Node_Str");
      }
      if (ssl.getClientAuth() == ClientAuth.NEED) {
        sslFilter.setNeedClientAuth(true);
      }
 else       if (ssl.getClientAuth() == ClientAuth.WANT) {
        sslFilter.setWantClientAuth(true);
      }
      if (ssl.getEnabledCipherSuites() != null) {
        sslFilter.setEnabledCipherSuites(ssl.getEnabledCipherSuites());
      }
      acceptor.getFilterChain().addFirst("String_Node_Str",sslFilter);
    }
    handler.init(context,this);
    acceptor.setHandler(new FtpHandlerAdapter(context,handler));
    try {
      acceptor.bind(address);
    }
 catch (    IOException e) {
      throw new FtpServerConfigurationException("String_Node_Str" + address + "String_Node_Str",e);
    }
    setPort(acceptor.getLocalAddress().getPort());
  }
 catch (  RuntimeException e) {
    stop();
    throw e;
  }
}

Fixed version (ground truth):
/** 
 * @see Listener#start(FtpServerContext)
 */
public synchronized void start(FtpServerContext context){
  try {
    this.context=context;
    acceptor=new NioSocketAcceptor(Runtime.getRuntime().availableProcessors());
    if (getServerAddress() != null) {
      address=new InetSocketAddress(getServerAddress(),getPort());
    }
 else {
      address=new InetSocketAddress(getPort());
    }
    acceptor.setReuseAddress(true);
    acceptor.getSessionConfig().setReadBufferSize(2048);
    acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE,getIdleTimeout());
    ((SocketSessionConfig)acceptor.getSessionConfig()).setReceiveBufferSize(512);
    MdcInjectionFilter mdcFilter=new MdcInjectionFilter();
    acceptor.getFilterChain().addLast("String_Node_Str",mdcFilter);
    acceptor.getFilterChain().addLast("String_Node_Str",new BlacklistFilter());
    updateBlacklistFilter();
    acceptor.getFilterChain().addLast("String_Node_Str",new ExecutorFilter(filterExecutor));
    acceptor.getFilterChain().addLast("String_Node_Str",new ProtocolCodecFilter(new FtpServerProtocolCodecFactory()));
    acceptor.getFilterChain().addLast("String_Node_Str",mdcFilter);
    acceptor.getFilterChain().addLast("String_Node_Str",new FtpLoggingFilter());
    if (isImplicitSsl()) {
      SslConfiguration ssl=getSslConfiguration();
      SslFilter sslFilter;
      try {
        sslFilter=new SslFilter(ssl.getSSLContext());
      }
 catch (      GeneralSecurityException e) {
        throw new FtpServerConfigurationException("String_Node_Str");
      }
      if (ssl.getClientAuth() == ClientAuth.NEED) {
        sslFilter.setNeedClientAuth(true);
      }
 else       if (ssl.getClientAuth() == ClientAuth.WANT) {
        sslFilter.setWantClientAuth(true);
      }
      if (ssl.getEnabledCipherSuites() != null) {
        sslFilter.setEnabledCipherSuites(ssl.getEnabledCipherSuites());
      }
      acceptor.getFilterChain().addFirst("String_Node_Str",sslFilter);
    }
    handler.init(context,this);
    acceptor.setHandler(new FtpHandlerAdapter(context,handler));
    try {
      acceptor.bind(address);
    }
 catch (    IOException e) {
      throw new FtpServerConfigurationException("String_Node_Str" + address + "String_Node_Str",e);
    }
    updatePort();
  }
 catch (  RuntimeException e) {
    stop();
    throw e;
  }
}