We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
protected void push(Entry entry) { if (destroyed.get()) { return; } String prevMessage = entry.message.toString(); if (!delayedBroadcast.isEmpty()) { Iterator<Entry> i = delayedBroadcast.iterator(); StringBuilder b = new StringBuilder(); while (i.hasNext()) { Entry e = i.next(); e.future.cancel(true); try { // Append so we do a single flush if (e.message instanceof String && entry.message instanceof String) { b.append(e.message); } else { push(e); // Problem here! } } finally { i.remove(); } } if (b.length() > 0) { entry.message = b.append(entry.message).toString(); } }
If we pass a delayed broadcast with a message type other than String, the above code will call push() until it runs out of stack space.
The text was updated successfully, but these errors were encountered:
It may be easiest to split push into two methods.
Sorry, something went wrong.
Wow great finding. Looking at it. Who wrote that code :-)
Integrated
Fix for #115 DefaultBroadcaster.push contains recursive error
b9c26bc
350fc4b
No branches or pull requests
If we pass a delayed broadcast with a message type other than String, the above code will call push() until it runs out of stack space.
The text was updated successfully, but these errors were encountered: