In my websocket endpoint, if I set javax.websocket.Session.setMaxIdleTimeout() to a value greater than 0 (for example 10000), the session always times out at the first interval, even if there is traffic sent or received over the websocket.
While debugging, I noticed IdleTimeoutConduit is calling handleIdleTimeout() before each read or write. But because the timedOut member is initialized to true, and is never changed, handleIdleTimeout() always returns immediately and doesn't reach the code necessary to update the expireTime. It appears as though the timedOut variable should simply be initialized to false.