Пример #1
0
  /**
   * Clones a <code>List</code> of <code>TransactionEntry(s)</code>
   *
   * @param fees <code>List</code> of fees to clone
   */
  public void setTransactionEntries(final List<TransactionEntry> fees) {
    feeList = new ArrayList<>();

    if (fees.size() == 1) {
      TransactionEntry e = fees.get(0);

      if (e.getCreditAccount().equals(e.getDebitAccount())) {
        feeField.setDecimal(e.getAmount(account).abs());
      } else {
        try {
          feeList.add((TransactionEntry) e.clone()); // copy over the provided set's entry
        } catch (CloneNotSupportedException e1) {
          Logger.getLogger(FeePanel.class.getName())
              .log(Level.SEVERE, e1.getLocalizedMessage(), e1);
        }
        feeField.setDecimal(sumFees().abs());
      }
    } else {
      for (TransactionEntry entry : fees) { // clone the provided set's entries
        try {
          feeList.add((TransactionEntry) entry.clone());
        } catch (CloneNotSupportedException e) {
          Logger.getLogger(FeePanel.class.getName()).log(Level.SEVERE, e.toString(), e);
        }
      }

      feeField.setDecimal(sumFees().abs());
    }

    feeField.setEditable(feeList.size() < 1);
  }
  private void updateAccountCode(final Account account, final Integer code) {
    final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);

    if (engine != null) {
      try {
        final Account template = (Account) account.clone();
        template.setAccountCode(code);

        engine.modifyAccount(template, account);
      } catch (final CloneNotSupportedException e) {
        Logger.getLogger(AccountsViewController.class.getName())
            .log(Level.SEVERE, e.getLocalizedMessage(), e);
      }
    }
  }
  /*
   * (non-Javadoc)
   *
   * @see com.ebay.jetstream.messaging.JetstreamMessageListener#onMessage(com.ebay.jetstream.messaging.JetstreamMessage)
   */
  public void onMessage(JetstreamMessage m) {
    if (m instanceof AdvisoryMessage) {
      AdvisoryMessage advise = (AdvisoryMessage) m;

      if (advise.isStopSending()
          && matchesMyPublishingContexts(advise.getAdvisoryTopic().getRootContext())) {
        LOGGER.warn("Outbound Messaging Channel raising alarm");
        setTopicAlarmState(advise.getAdvisoryTopic().getRootContext());

        incrementAlarmsRaisedCounter();

        if (areAllContextsInAlarmCondition()) {
          m_alarmRaised.set(true);
          getAlarmListener().alarm(ChannelAlarm.OVERRUN);
          postAlert("All Contexts in Alarm Condition - ", AlertStrength.ORANGE);
        }
      } else if (advise.isResumeSending()
          && matchesMyPublishingContexts(advise.getAdvisoryTopic().getRootContext())) {
        LOGGER.info(
            "Outbound Messaging Channel clearing alarm for topic-> "
                + advise.getAdvisoryTopic().getRootContext());

        resetTopicAlarmState(advise.getAdvisoryTopic().getRootContext());

        if (!areAllContextsInAlarmCondition()) {
          m_alarmRaised.set(false);
          getAlarmListener().alarm(ChannelAlarm.CLEAR);
          postAlert("Alarm Condition Cleared - ", AlertStrength.YELLOW);
          incrementAlarmsClearedCounter();
        }
      } else if (advise.isResendMessage()) {

        JetstreamEvent evt =
            (JetstreamEvent) ((Any) ((AdvisoryMessage) m).getUndeliveredMsg()).getObject();

        try {
          evt = evt.clone();
        } catch (CloneNotSupportedException e) {
          m_errors.registerError(e);
          LOGGER.debug("Failed to clone event : Exception = " + e.getLocalizedMessage());
          this.incrementEventDroppedCounter();
          return;
        }

        List<String> topics = m_address.getChannelTopics();
        String topic = ((AdvisoryMessage) m).getAdvisoryTopic().toString();
        // Fix issue when multiple OMCs subscribe different topics under same context.
        // Each OMC will receive broadcast advisory events.
        if (topic == null || topics.contains(topic)) {
          evt.put(JetstreamReservedKeys.EventReplayTopic.toString(), topic);

          Integer retryCount = 1;
          if (evt != null) {
            if (evt.containsKey(JetstreamReservedKeys.RetryCount.toString())) {
              retryCount = (Integer) evt.get(JetstreamReservedKeys.RetryCount.toString());
              retryCount++;
            }
            evt.put(JetstreamReservedKeys.RetryCount.toString(), retryCount);
            sendToAdviceListener(
                evt, RetryEventCode.MSG_RETRY, AdvisoryCode.RESEND_MESSAGE.toString());
            incrementRetryAdvisoryEvents();
          }
        }
      }
    }
  }