if (ackType == ClusterBroadcast.MSG_PREPARE) {
TransactionAcknowledgement[] tas = new TransactionAcknowledgement[sysids.length];
ackEntry entry = null, value = null;
StringBuffer dbuf = new StringBuffer();
AckEntryNotFoundException ae = null;
synchronized(deliveredMessages) {
for (int i = 0; i < sysids.length; i++) {
entry = new ackEntry(sysids[i], cuids[i], null);
value = (ackEntry)deliveredMessages.get(entry);
if (value == null) { //XXX
String emsg = "["+sysids[i]+":"+cuids[i]+"]TID="+tid+" not found, maybe rerouted";
if (ae == null) ae = new AckEntryNotFoundException(emsg);
ae.addAckEntry(sysids[i], cuids[i]);
logger.log(logger.WARNING,
"["+sysids[i]+":"+cuids[i]+"] not found for preparing remote transaction "+tid+", maybe rerouted");
continue;
}
if (value.getTUID() != null) {
String emsg = "["+sysids[i]+":"+cuids[i]+"]TID="+tid+" has been rerouted";
if (ae == null) ae = new AckEntryNotFoundException(emsg);
ae.addAckEntry(sysids[i], cuids[i]);
logger.log(logger.WARNING, "["+sysids[i]+":"+cuids[i] + "] for preparing remote transaction "
+tid + " conflict with transaction "+value.getTUID());
continue;
}
com.sun.messaging.jmq.jmsserver.core.ConsumerUID scuid = value.getStoredConsumerUID();