https://bz.apache.org/bugzilla/show_bug.cgi?id=57831

            Bug ID: 57831
           Summary: Fragmented JSON Messages Causing IllegalStateException
           Product: Tomcat 8
           Version: 8.0.21
          Hardware: All
                OS: All
            Status: NEW
          Severity: critical
          Priority: P2
         Component: WebSocket
          Assignee: dev@tomcat.apache.org
          Reporter: kenneth.gend...@gmail.com

Created attachment 32660
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=32660&action=edit
Message that causes the failure

Tomcat 8.0.21 (not 8.0.20 or earlier) is throwing an IllegalStateException for
JSON messages.  Below is the exception being thrown.

Exception in thread "WebSocketServer-localhost-/temp-4"
java.lang.IllegalStateException: When sending a fragmented message, all
fragments bust be of the same type
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:411)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.endMessage(WsRemoteEndpointImplBase.java:366)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase$IntermediateMessageHandler.onResult(WsRemoteEndpointImplBase.java:513)
        at
org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer$OnResultRunnable.run(WsRemoteEndpointImplServer.java:247)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

Attached is the message that is causing the issue.

Looking at the top few lines:

{
  "context": "4IVS04",
  "data": {
    "enterfornext": true,
    "inputs": [
      {
        "autocomplete": 3,
        "desc": "Enter Tool: ",
        "options": [
          "DNOTCH10",
          "DNOTCH11",

If the entire "DNOTCH10" line is removed, the message can be transmitted by
Tomcat; however, even adding a single "illegal" character in the JSON after
this line is removed causes the error to be thrown.

It appears Tomcat is analyzing the fragments its sending and determining that
some cannot be sent because they are not legitimate JSON (or something to that
affect).

Again, version 8.0.20 and below does not have this issue.

Thanks

Ken

P.S. I can provide the test web app to demonstrate this.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to