@Override
    public void start() {
        if (isStarted())
            return;
        try {
            ServerSocket socket = getServerSocketFactory().createServerSocket(getPort(), getBacklog(),
                    getInetAddress());
            ServerListener<RemoteReceiverClient> listener = createServerListener(socket);

            runner = createServerRunner(listener, getContext().getExecutorService());
            runner.setContext(getContext());
            getContext().getExecutorService().execute(runner);
            super.start();
        } catch (Exception ex) {
            addError("server startup error: " + ex, ex);
        }
    }
@Test
    public void testStartWhenAlreadyStarted() throws Exception {
        appender.start();
        appender.start();
        Assertions.assertEquals(1, runner.getStartCount());
    }