/** * Default implementation to call a listener's {@link IoFutureListener#exception(Throwable)} * method. Owners may override this method so that the listener is called from a thread pool. * * @param listener the listener to call * @param throwable the exception to pass to the listener */ protected void scheduleException(IoFutureListener<V> listener, Throwable throwable) { LOG.debug("Calling the default exception scheduler"); try { listener.exception(throwable); } catch (Throwable t) { LOG.warn("Listener threw an exception", t); } }
/** * Default implementation to call a listener's {@link IoFutureListener#completed(Object)} method. * Owners may override this method so that the listener is called from a thread pool. * * @param listener the listener to call * @param result the result to pass to the listener */ protected void scheduleResult(IoFutureListener<V> listener, V result) { LOG.debug("Calling the default result scheduler"); try { listener.completed(result); } catch (Throwable t) { LOG.warn("Listener threw an exception", t); } }