private void processSubscriptionStatus(Event event, Session session) throws Exception {
s_logger.debug("Processing SUBSCRIPTION_STATUS");
MessageIterator msgIter = event.messageIterator();
while (msgIter.hasNext()) {
Message msg = msgIter.next();
String topic = (String) msg.correlationID().object();
s_logger.debug("{}: {} - {}", new Object[]{_dateFormat
.format(Calendar.getInstance().getTime()), topic, msg.messageType()});
if (msg.messageType().equals("SubscriptionTerminated")) {
s_logger.warn("SubscriptionTerminated for {}", msg.correlationID().object());
s_logger.warn("msg = {}", msg.toString());
}
if (msg.hasElement(REASON)) {
// This can occur on SubscriptionFailure.
Element reason = msg.getElement(REASON);
s_logger.warn("{}: security={} category={} description={}",
new Object[]{_dateFormat.format(Calendar.getInstance().getTime()), topic, reason.getElement(CATEGORY).getValueAsString(), reason.getElement(DESCRIPTION).getValueAsString()});
}
if (msg.hasElement(EXCEPTIONS)) {
// This can occur on SubscriptionStarted if at least
// one field is good while the rest are bad.
Element exceptions = msg.getElement(EXCEPTIONS);
for (int i = 0; i < exceptions.numValues(); ++i) {
Element exInfo = exceptions.getValueAsElement(i);
Element fieldId = exInfo.getElement(FIELD_ID);
Element reason = exInfo.getElement(REASON);
s_logger.warn("{}: security={} field={} category={}",