@Override public void shutDown() { converter.shutDown(); }
@Override public void onShutdown(Container container) { LOGGER.info("Standalone conversion server is shutting down: shutting local converter down"); converter.shutDown(); LOGGER.info("Standalone conversion server is shutting down: local converter was shut down"); }
@Override public void onFailure(IConverter converter) { if (converters.remove(converter)) { try { converter.shutDown(); } catch (RuntimeException exception) { LOGGER.error("Could not shut down {}", converter, exception); } finally { converterFailureCallback.onFailure(converter); } } }
@Override public void shutDown() { if (selfCheck != null) { selfCheck.cancel(true); } try { if (propagateShutDown) { List<RuntimeException> exceptions = new ArrayList<RuntimeException>(); for (IConverter converter : converters) { try { converter.shutDown(); } catch (RuntimeException e) { exceptions.add(e); } } if (!exceptions.isEmpty()) { throw new ConverterAccessException("Shutting down aggregated converters caused at least one exception", exceptions.get(0)); } } } finally { converters.clear(); } }
@Override public void run() { for (IConverter converter : converters) { if (!converter.isOperational()) { if (converters.remove(converter)) { try { converter.shutDown(); } catch (RuntimeException e) { LOGGER.warn("Could not shut down {} during deregistration", converter, e); } finally { converterFailureCallback.onFailure(converter); } } } } }
sayGoodbye(converter, logger); } finally { converter.shutDown();