@Override protected void doStop() throws Exception { if (service.state() != Service.State.TERMINATED && service.state() != Service.State.FAILED) { LOG.debug("stopping controller service for program {}.", getProgramRunId()); service.stopAndWait(); LOG.debug("stopped controller service for program {}, waiting for it to finish running listener hooks.", getProgramRunId()); serviceStoppedLatch.await(30, TimeUnit.SECONDS); LOG.debug("controller service for program {} finished running listener hooks.", getProgramRunId()); } }
@Override protected void doStop() throws Exception { if (service.state() != Service.State.TERMINATED && service.state() != Service.State.FAILED) { LOG.debug("stopping controller service for program {}.", getProgramRunId()); service.stopAndWait(); LOG.debug("stopped controller service for program {}, waiting for it to finish running listener hooks.", getProgramRunId()); serviceStoppedLatch.await(30, TimeUnit.SECONDS); LOG.debug("controller service for program {} finished running listener hooks.", getProgramRunId()); } }
@Override public void failed(Service.State from, Throwable failure) { Throwable rootCause = Throwables.getRootCause(failure); LOG.error("{} Program '{}' failed.", getProgramRunId().getType(), getProgramRunId().getProgram(), failure); USERLOG.error("{} program '{}' failed with error: {}. Please check the system logs for more details.", getProgramRunId().getType(), getProgramRunId().getProgram(), rootCause.getMessage(), rootCause); serviceStoppedLatch.countDown(); error(failure); }
@Override public void failed(Service.State from, Throwable failure) { Throwable rootCause = Throwables.getRootCause(failure); LOG.error("{} Program '{}' failed.", getProgramRunId().getType(), getProgramRunId().getProgram(), failure); USERLOG.error("{} program '{}' failed with error: {}. Please check the system logs for more details.", getProgramRunId().getType(), getProgramRunId().getProgram(), rootCause.getMessage(), rootCause); serviceStoppedLatch.countDown(); error(failure); }