public final void sendResponse(Object value) { OperationResponseHandler responseHandler = getOperationResponseHandler(); if (responseHandler == null) { if (value instanceof Throwable) { // in case of a throwable, we want the stacktrace. getLogger().warning("Missing responseHandler for " + toString(), (Throwable) value); } else { getLogger().warning("Missing responseHandler for " + toString() + " value[" + value + "]"); } } else { responseHandler.sendResponse(this, value); } }
public final void sendResponse(Object value) { OperationResponseHandler responseHandler = getOperationResponseHandler(); if (responseHandler == null) { if (value instanceof Throwable) { // in case of a throwable, we want the stacktrace. getLogger().warning("Missing responseHandler for " + toString(), (Throwable) value); } else { getLogger().warning("Missing responseHandler for " + toString() + " value[" + value + "]"); } } else { responseHandler.sendResponse(this, value); } }
/** * Logs <tt>Exception</tt>/<tt>Error</tt> thrown during operation execution. * Operation implementations can override this behaviour according to their needs. * <p/> * This method is called on node & thread that's executing the operation. * * @param e Exception/Error thrown during operation execution */ public void logError(Throwable e) { final ILogger logger = getLogger(); if (e instanceof SilentException) { logger.finest(e.getMessage(), e); } else if (e instanceof RetryableException) { final Level level = returnsResponse() ? Level.FINEST : Level.WARNING; if (logger.isLoggable(level)) { logger.log(level, e.getClass().getName() + ": " + e.getMessage()); } } else if (e instanceof OutOfMemoryError) { try { logger.severe(e.getMessage(), e); } catch (Throwable ignored) { ignore(ignored); } } else { final Level level = nodeEngine != null && nodeEngine.isRunning() ? Level.SEVERE : Level.FINEST; if (logger.isLoggable(level)) { logger.log(level, e.getMessage(), e); } } }
/** * Logs <tt>Exception</tt>/<tt>Error</tt> thrown during operation execution. * Operation implementations can override this behaviour according to their needs. * <p/> * This method is called on node & thread that's executing the operation. * * @param e Exception/Error thrown during operation execution */ public void logError(Throwable e) { final ILogger logger = getLogger(); if (e instanceof SilentException) { logger.finest(e.getMessage(), e); } else if (e instanceof RetryableException) { final Level level = returnsResponse() ? Level.FINEST : Level.WARNING; if (logger.isLoggable(level)) { logger.log(level, e.getClass().getName() + ": " + e.getMessage()); } } else if (e instanceof OutOfMemoryError) { try { logger.severe(e.getMessage(), e); } catch (Throwable ignored) { ignore(ignored); } } else { final Level level = nodeEngine != null && nodeEngine.isRunning() ? Level.SEVERE : Level.FINEST; if (logger.isLoggable(level)) { logger.log(level, e.getMessage(), e); } } }