-
Bug
-
Resolution: Done
-
Minor
-
2.0.22.Final
-
None
-
None
When trying to log a WebSocketChannel (toString()), I get:
SLF4J: Failed toString() invocation on an object of type [io.undertow.websockets.core.protocol.version13.WebSocket13Channel] Reported exception: java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) at java.util.LinkedList$ListItr.next(LinkedList.java:888) at java.util.AbstractCollection.toString(AbstractCollection.java:461) at io.undertow.server.protocol.framed.AbstractFramedChannel.toString(AbstractFramedChannel.java:1097)
AbstractFramedChannel.toString() looks like this:
@Override public String toString() { return getClass().getSimpleName() + " peer " + channel.getPeerAddress() + " local " + channel.getLocalAddress() + "[ " + (receiver == null ? "No Receiver" : receiver.toString()) + " " + pendingFrames.toString() + " -- " + heldFrames.toString() + " -- " + newFrames.toString() + "]"; }
I noticed that List<S> pendingFrames is always used in synchronized blocks... shouldn't toString() be synchronized, too?
- is duplicated by
-
UNDERTOW-1953 AbstractFramedChannel.toString() not thread safe
- Resolved
- is incorporated by
-
WFCORE-5598 Upgrade Undertow to 2.2.12.Final
- Closed