Exemple #1
0
  protected void handleWorkException(WorkEvent event, String type) {
    Throwable e;

    if (event != null && event.getException() != null) {
      e = event.getException();
    } else {
      return;
    }

    if (event.getException().getCause() != null) {
      e = event.getException().getCause();
    }

    logger.error(
        "Work caused exception on '"
            + type
            + "'. Work being executed was: "
            + event.getWork().toString());

    if (e instanceof Exception) {
      handleException((Exception) e);
    } else {
      throw new MuleRuntimeException(CoreMessages.componentCausedErrorIs(this.getName()), e);
    }
  }
  /**
   * accept work
   *
   * @param e workEvent
   */
  @Override
  public void workAccepted(WorkEvent e) {
    if (e.getType() != WorkEvent.WORK_ACCEPTED) fail("Wrong accepted type");
    source = e.getSource();
    work = e.getWork();
    startDuration = e.getStartDuration();
    exception = e.getException();

    if (callbackCount != null) {
      synchronized (this) {
        callbackCount.setAcceptCount(callbackCount.getAcceptCount() + 1);
      }
    }

    super.workAccepted(e);
  }
  /**
   * start work
   *
   * @param e workEvent
   */
  @Override
  public void workStarted(WorkEvent e) {
    if (e.getType() != WorkEvent.WORK_STARTED) fail("Wrong started type");

    if (callbackCount != null) {
      synchronized (this) {
        callbackCount.setStartCount(callbackCount.getStartCount() + 1);
      }
    }

    super.workStarted(e);
  }
  /**
   * complete work
   *
   * @param e workEvent
   */
  @Override
  public void workCompleted(WorkEvent e) {
    if (e.getType() != WorkEvent.WORK_COMPLETED) fail("Wrong completed type");

    if (callbackCount != null) {
      synchronized (this) {
        callbackCount.setCompletedCount(callbackCount.getCompletedCount() + 1);
      }
    }

    super.workCompleted(e);
  }