On 31/08/2013 02:40, Igor Urisman wrote:
> That's correct.  I call close() inside onOpen().  You correctly call
> onClose() on the endpoint as well, so my code is happy.  But a thread of
> yours crashes milliseconds later. I have no problem changing my code to
> call close() after onOpen() returns, of course.  But if you insist on this
> semantics, perhaps you ought to throw an exception in my thread when I call
> close() inside onOpen()?

No need to change your code. This has already been fixed in trunk and
will be included in 8.0.0-RC2.

RC2 has been delayed because it needs a tc-native release to fix a
non-blocking IO issue with the APR/native connector that can result in
corruption of responses.

The 1.1.28 release of tc-native should happen this week. The 7.0.43 and
8.0.0-RC2 releases will follow shortly afterwards.

Mark


> 
> Thanks!
> -Igor.
> 
> 
> On Fri, Aug 30, 2013 at 6:12 PM, Niki Dokovski <nick...@gmail.com> wrote:
> 
>> On Sat, Aug 31, 2013 at 12:33 AM, Igor Urisman <igor.uris...@gmail.com
>>> wrote:
>>
>>> Dear all,
>>>
>>> Getting the following exception with none of my code on the stack:
>>>
>>> SEVERE: Error reading request, ignored
>>> java.lang.IllegalStateException: The WebSocket session has been closed
>> and
>>> no method (apart from close()) may be called on a closed session
>>>     at
>> org.apache.tomcat.websocket.WsSession.checkState(WsSession.java:607)
>>>     at
>>>
>> org.apache.tomcat.websocket.WsSession.getUserPrincipal(WsSession.java:536)
>>>     at
>>>
>>>
>> org.apache.tomcat.websocket.server.WsServerContainer.registerSession(WsServerContainer.java:308)
>>>     at
>>>
>>>
>> org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:131)
>>>     at
>>>
>>>
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
>>>     at
>>>
>>>
>> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
>>>     at
>>>
>>>
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1592)
>>>     at
>>>
>>>
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1550)
>>>     at
>>>
>>>
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>     at
>>>
>>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>     at java.lang.Thread.run(Thread.java:722)
>>>
>>> May still be my problem, of course, but far as I can tell, all I do is
>> call
>>> Session.close()  once on this session.  I understand this may be too
>> little
>>> to go by,-- if so I am happy to try and isolate into a testcase.
>>>
>>
>> Do you call close during @OnOpen? This exception here is possible in this
>> case as register session call is done after invkoing applicaiton ep OnOpen?
>>
>>>
>>> Thanks in advance,
>>> -Igor.
>>>
>>
> 


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

Reply via email to