Community
Participate
Working Groups
This issue was originally reported as JETTY-1316 in Codehaus JIRA for Jetty 6.1 by Dave Messink (dmessink@umich.edu). The current implementation of AbstractLifeCycle.isRunning() may return false if the state of the component changes from STARTING to STARTED during the call. This was discovered when the SelectChannelConnector.doStart() starts an acceptor thread - which fails to enter the accept loop due to isRunning() returning false. We narrowed it down to the main thread changing the state of the lifecycle immediately after spawning the thread - which causes the comparison checks in isRunning() to fail. (This happens one out of 300 attempts. Yes - it's rare but was happening enough to cause nightly integration tests to fail). We've worked around the issue by extending the SelectChannelConnector class and overriding the isRunning() method.
Committed r3251.