@Override
    public void init() throws IOException
    {
        try
        {
            onInit();

            initialized = true;
            closed = false;
        }
        catch (IOException e)
        {
            throw e;
        }
        catch (RuntimeException e)
        {
            throw e;
        }

        if (initialized)
        {
            clients = new HashSet<Client>();
        }
    }