@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);
        }
      }
    }
  }
예제 #2
0
  @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);
        }
      }
    }
  }
예제 #3
0
  @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);
        }
      }
    }
  }
예제 #6
0
  @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);
        }
      }
    }
  }