ThreadServer extends AbstractServer implements Runnable { @Override public void boot() { this.boot(false); }  @Override void run(); @Override void boot(); void boot(final boolean isBlock); @Override void down(); void down(final boolean isBlock); @Override String toString();  }
@Test public void shouldFailOnProcessError() { final ThreadServer server = new ThreadServer() { @Override protected void process() throws Exception { throw new IllegalArgumentException(); } }; server.boot(true); trySleep(100); server.waitStatus(ServerStatus.TERMINATED); assertNotNull(server.getException()); assertEquals(ServerStatus.TERMINATED, server.getStatus()); }