class NetServerBase extends ProtocolServerBase implements NetServer {

    protected AsyncConnectionManager connectionManager;

    @Override
    public void setConnectionManager(AsyncConnectionManager connectionManager) {
        this.connectionManager = connectionManager;
    }

    private void check() {
        if (connectionManager == null)
            throw DbException.getInternalError("connectionManager is null");
    }

    public AsyncConnection createConnection(WritableChannel writableChannel, Scheduler scheduler) {
        check();
        return connectionManager.createConnection(writableChannel, true, scheduler);
    }

    public void removeConnection(AsyncConnection conn) {
        check();
        connectionManager.removeConnection(conn);
    }

    protected void checkBindException(Throwable e, String message) {<FILL_FUNCTION_BODY>}
}

        String address = host + ":" + port;
        if (e instanceof BindException) {
            if (e.getMessage().contains("in use")) {
                message += ", " + address
                        + " is in use by another process. Change host:port in lealone.yaml "
                        + "to values that do not conflict with other services.";
                e = null;
            } else if (e.getMessage().contains("Cannot assign requested address")) {
                message += ". Unable to bind to address " + address
                        + ". Set host:port in lealone.yaml to an interface you can bind to, e.g.,"
                        + " your private IP address.";
                e = null;
            }
        }
        if (e == null)
            throw new ConfigException(message);
        else
            throw new ConfigException(message, e);
    
<methods>public boolean allow(java.lang.String) ,public boolean getAllowOthers() ,public java.lang.String getBaseDir() ,public Map<java.lang.String,java.lang.String> getConfig() ,public java.lang.String getHost() ,public java.lang.String getName() ,public int getPort() ,public com.lealone.common.security.EncryptionOptions.ServerEncryptionOptions getServerEncryptionOptions() ,public int getSessionTimeout() ,public java.lang.String getType() ,public java.lang.String getURL() ,public void init(Map<java.lang.String,java.lang.String>) ,public boolean isDaemon() ,public boolean isSSL() ,public boolean isStarted() ,public boolean isStopped() ,public void setServerEncryptionOptions(com.lealone.common.security.EncryptionOptions.ServerEncryptionOptions) ,public synchronized void start() ,public synchronized void stop() <variables>protected boolean allowOthers,protected java.lang.String baseDir,protected Map<java.lang.String,java.lang.String> config,protected boolean daemon,protected java.lang.String host,protected java.lang.String name,protected int port,protected com.lealone.common.security.EncryptionOptions.ServerEncryptionOptions serverEncryptionOptions,protected int sessionTimeout,protected boolean ssl,protected boolean started,protected boolean stopped,protected HashSet<java.lang.String> whiteList