From b9c26bc30e261f3011c25dedb981300d1bb57321 Mon Sep 17 00:00:00 2001 From: jfarcand Date: Fri, 30 Mar 2012 15:30:30 -0400 Subject: [PATCH] Fix for #115 DefaultBroadcaster.push contains recursive error --- .../main/java/org/atmosphere/cpr/DefaultBroadcaster.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/cpr/src/main/java/org/atmosphere/cpr/DefaultBroadcaster.java b/modules/cpr/src/main/java/org/atmosphere/cpr/DefaultBroadcaster.java index 63d082a61ed..cadb4878716 100644 --- a/modules/cpr/src/main/java/org/atmosphere/cpr/DefaultBroadcaster.java +++ b/modules/cpr/src/main/java/org/atmosphere/cpr/DefaultBroadcaster.java @@ -532,6 +532,10 @@ protected void start() { } protected void push(Entry entry) { + push(entry, true); + } + + protected void push(Entry entry, boolean rec) { if (destroyed.get()) { return; @@ -542,7 +546,7 @@ protected void push(Entry entry) { recentActivity.set(true); String prevMessage = entry.message.toString(); - if (!delayedBroadcast.isEmpty()) { + if (rec && !delayedBroadcast.isEmpty()) { Iterator i = delayedBroadcast.iterator(); StringBuilder b = new StringBuilder(); while (i.hasNext()) { @@ -554,7 +558,7 @@ protected void push(Entry entry) { && entry.message instanceof String) { b.append(e.message); } else { - push(e); + push(e, false); } } finally { i.remove();