Dejan Bosanac created AMQ-3955:
----------------------------------
Summary: WebSocket Transport - Race condition starting transport
Key: AMQ-3955
URL: https://issues.apache.org/jira/browse/AMQ-3955
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.6.0
Reporter: Dejan Bosanac
Assignee: Dejan Bosanac
Fix For: 5.7.0
In the StompServlet, when a websocket request comes in, we are starting up the
broker's websocket connection when we call listener.onAccept(socket).
Under the covers, it begins a task in a new thread to create the connection,
instantiate the transport listener, and set the listener on the transport.
However, this is done asynchronously, and when the StompServlet calls
listener.onAccept(socket), it immediately returns to the underlying jetty
websockets implementation, returning the StompSocket (which as the websocket
onTextMessage listener). It seems it's possible the jetty code could call back
the onTextMessage listener's onMessage(...) method and expect the StompSocket
to process the Stomp message before the steps taken to complete creating the
connection from the async listener.onAccept(..) call.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira