tyrus
  1. tyrus
  2. TYRUS-229

Session#setMaxIdleTimeout() will kill the session whether or not the session actually timed out

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0-b05, 1.0-b06, 1.0-b07, 1.0-b08, 1.0-b09, 1.0-b10, 1.0-b11, 1.0-b12, 1.0-b13, 1.0-b14, 1.0-rc1, 1.0-rc2, 1.0-rc3, 1.0-rc4, 1.0, 1.1, 1.2, 1.2.1
    • Fix Version/s: 1.3
    • Component/s: None
    • Labels:
      None
    • Environment:

      Windows 8 x64, GlassFish 4

      Description

      If you on the server side, grab the websocket session object from the @OnOpen method and call Session#setMaxIdleTimeout() using any number, when that time has passed Tyrus will forcefully close the session whether he actually timed out or not.

      To test this, I registered a pong message handler who logged each time we received a pong. It showed that Internet Explorer (10), is the only browser who will send us a pong from time to time. Yet, this browser too will be affected by the aforementioned problem. Furthermore, I setup a scheduled timer to programmatically ping the client endpoint using RemoteEndpoint#sendPing(). That made all the browsers reply with a ping. However, as soon as the time passed that we had sent as an argument to the Session#setMaxIdleTimeout() method, Tyrus closed all sessions despite them being provably not idle.

        Activity

          People

          • Assignee:
            stepan.kopriva
            Reporter:
            martinandersson.com
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: