Index: src/main/java/org/jgroups/protocols/pbcast/NAKACK.java =================================================================== --- src/main/java/org/jgroups/protocols/pbcast/NAKACK.java (revision 8214) +++ src/main/java/org/jgroups/protocols/pbcast/NAKACK.java (working copy) @@ -740,6 +740,12 @@ long msg_id; NakReceiverWindow win=xmit_table.get(local_addr); + if (win == null) { + win=createNakReceiverWindow(local_addr, INITIAL_SEQNO, 0); + xmit_table.put(local_addr, win); + if(log.isErrorEnabled()) + log.error("receive window for " + local_addr + " was null"); + } msg.setSrc(local_addr); // this needs to be done so we can check whether the message sender is the local_addr seqno_lock.lock(); @@ -896,7 +902,13 @@ if(log.isErrorEnabled()) { StringBuffer sb=new StringBuffer(); sb.append("(requester=").append(xmit_requester).append(", local_addr=").append(this.local_addr); - sb.append(") ").append(original_sender).append(" not found in retransmission table: ").append(printMessages()); + sb.append(") ").append(original_sender).append(" not found in retransmission table: "); + + // don't add table unless tracing + if (log.isTraceEnabled()) { + sb.append(printMessages()); + } + if(print_stability_history_on_failed_xmit) { sb.append(" (stability history:\n").append(printStabilityHistory()); } @@ -911,7 +923,13 @@ StringBuffer sb=new StringBuffer(); sb.append("(requester=").append(xmit_requester).append(", local_addr=").append(this.local_addr); sb.append(") message ").append(original_sender).append("::").append(i); - sb.append(" not found in retransmission table of ").append(printMessages()); + sb.append(" not found in retransmission table"); + + // don't add table unless tracing + if (log.isTraceEnabled()) { + sb.append(" of ").append(printMessages()); + } + if(print_stability_history_on_failed_xmit) { sb.append(" (stability history:\n").append(printStabilityHistory()); }