Enhancement
Requests from the client are synchronized in tl:RequestLock. If a thread waits too long because another thread is working, it times out and the arguments of the command are written to the log.
In this case, however, it is also desirable to log which thread took so long that other threads timed out.
Implementation
When a writer leaves the RequestLock, the tl:AjaxServlet determines whether a timeout occurred and, if so, logs the executed command.
Test
Only with debugging!
- Set breakpoint in TabBarControl$TabSwitch.execute(...).
- Switch tab.
- Expectation: The WaitPane is displayed.
- Use F12 Tools to remove the waiting class from the WaitPane (element with id waitPane).
- Click on another tab again.
- Expectation: There is no second thread that stops at the breakpoint.
- Wait 60 sec.
- Expectation: A message is displayed in the log that the request has timed out.
- Let the thread continue to run in the breakpoint.
- Expectation: A message is displayed that another thread has timed out.