@Override public void onException(Exception exception) { if (!feed.isConnected()) { if (log.isTraceEnabled()) log.trace( "Read of {} in {} gave exception (while not connected or not yet connected): {}", new Object[] {this, getBriefDescription(), exception}); } else { logProblem("exception", exception); } if (config.hasExceptionHandler()) { try { setSensor(config.getOnException().apply(exception)); } catch (Exception e) { if (feed.isConnected()) { log.warn("unable to compute " + getBriefDescription() + "; on exception=" + exception, e); } else { if (log.isDebugEnabled()) log.debug( "unable to compute " + getBriefDescription() + "; exception=" + exception + " (when inactive)", e); } } } }
@SuppressWarnings("unchecked") @Override public void onFailure(V val) { if (!config.hasFailureHandler()) { onException( new Exception( "checkSuccess of " + this + " from " + entity + " was false but poller has no failure handler")); } else { logProblem("failure", val); try { Object v = coerce(config.getOnFailure().apply(val)); if (v != PollConfig.UNSET) { entity.setAttribute(sensor, v); } } catch (Exception e) { if (feed.isConnected()) { log.warn("Error computing " + entity + "->" + sensor + "; val=" + val + ": " + e, e); } else { if (log.isDebugEnabled()) log.debug( "Error computing " + entity + " ->" + sensor + "; val=" + val + " (when inactive)", e); } } } }
@SuppressWarnings("unchecked") @Override public void onSuccess(V val) { if (lastWasProblem) { if (currentProblemLoggedAsWarning) { log.info("Success (following previous problem) reading " + entity + "->" + sensor); } else { log.debug("Success (following previous problem) reading " + entity + "->" + sensor); } lastWasProblem = false; currentProblemStartTime = null; currentProblemLoggedAsWarning = false; } lastSuccessTime = System.currentTimeMillis(); if (log.isTraceEnabled()) log.trace("poll for {}->{} got: {}", new Object[] {entity, sensor, val}); try { Object v = transformValue(val); if (v != PollConfig.UNSET) { entity.setAttribute(sensor, v); } } catch (Exception e) { if (feed.isConnected()) { log.warn("unable to compute " + entity + "->" + sensor + "; on val=" + val, e); } else { if (log.isDebugEnabled()) log.debug( "unable to compute " + entity + " ->" + sensor + "; val=" + val + " (when inactive)", e); } } }
@Override public void onSuccess(V val) { if (lastWasProblem) { if (currentProblemLoggedAsWarning) { log.info("Success (following previous problem) reading " + getBriefDescription()); } else { log.debug("Success (following previous problem) reading " + getBriefDescription()); } lastWasProblem = false; currentProblemStartTime = null; currentProblemLoggedAsWarning = false; } lastSuccessTime = System.currentTimeMillis(); if (log.isTraceEnabled()) log.trace("poll for {} got: {}", new Object[] {getBriefDescription(), val}); try { setSensor(transformValueOnSuccess(val)); } catch (Exception e) { if (feed.isConnected()) { log.warn("unable to compute " + getBriefDescription() + "; on val=" + val, e); } else { if (log.isDebugEnabled()) log.debug( "unable to compute " + getBriefDescription() + "; val=" + val + " (when inactive)", e); } } }
@Override public void onFailure(V val) { if (!config.hasFailureHandler()) { onException( new Exception( "checkSuccess of " + this + " for " + getBriefDescription() + " was false but poller has no failure handler")); } else { logProblem("failure", val); try { setSensor(config.hasFailureHandler() ? config.getOnFailure().apply((V) val) : val); } catch (Exception e) { if (feed.isConnected()) { log.warn("Error computing " + getBriefDescription() + "; val=" + val + ": " + e, e); } else { if (log.isDebugEnabled()) log.debug( "Error computing " + getBriefDescription() + "; val=" + val + " (when inactive)", e); } } } }
@SuppressWarnings("unchecked") @Override public void onException(Exception exception) { if (!feed.isConnected()) { if (log.isDebugEnabled()) log.debug( "Read of {} from {} gave exception (while not connected or not yet connected): {}", new Object[] {this, entity, exception}); } else { logProblem("exception", exception); } if (config.hasExceptionHandler()) { try { Object v = transformError(exception); if (v != PollConfig.UNSET) { entity.setAttribute(sensor, v); } } catch (Exception e) { if (feed.isConnected()) { log.warn( "unable to compute " + entity + "->" + sensor + "; on exception=" + exception, e); } else { if (log.isDebugEnabled()) log.debug( "unable to compute " + entity + " ->" + sensor + "; exception=" + exception + " (when inactive)", e); } } } }