@Override public TaskResult call() { try { if (recordProcessor instanceof IShutdownNotificationAware) { IShutdownNotificationAware shutdownNotificationAware = (IShutdownNotificationAware) recordProcessor; try { shutdownNotificationAware.shutdownRequested(recordProcessorCheckpointer); } catch (Exception ex) { return new TaskResult(ex); } } return new TaskResult(null); } finally { shutdownNotification.shutdownNotificationComplete(); } }