Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 377846

Summary: The server timeout timer begins at the incorrect time (port to 3.2.5 patches)
Product: [WebTools] WTP ServerTools Reporter: Steven Hung <sghung>
Component: wst.serverAssignee: wst.server <wst.server-inbox>
Status: CLOSED DUPLICATE QA Contact: Elson Yuen <eyuen7>
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
Patch v1.0 none

Description Steven Hung CLA 2012-04-27 00:08:34 EDT
Build Identifier: WTP 3.2.5 patches

Port to 3.2.5 patches of Bug 377566 - The server timeout timer begins at the
incorrect time

Reproducible: Always
Comment 1 Steven Hung CLA 2012-04-27 00:10:50 EDT
Created attachment 214657 [details]
Patch v1.0

Issue:
If the delegate in the server start has setup operations, such as asking the
user for information, the timer for the server start would have already began
counting before the setup has completed. As a result, the user will get a
timeout once they fill in this information. 

For start, restart, and stop, the timer should begin after the delegates
return, since that should be the point where the operation is kicked off
asynchronously. If it isn't asynchronous, then the timer wouldn't work anyway,
since it doesn't interrupt the delegate if it times out (it would just keep
being blocked).

Overview of changes:
- for start, restart, and stop, the timer now begins after the delegate
- for stop, to use an interval approach for the timer, so it can exist
prematurely if the server has already stopped

Tests run:
1. Start server, with start timeout below start time, ensured timeout hit,
server goes to stopped
2. Start server, with start timeout above start time, ensured server started
and timeout not hit
3. Restart server, with start timeout below start time, ensure timeout hit,
server goes to stopped
4. Restart server, with start timeout above start time, ensure server started
(after restarting) and timeout not hit
5. Have an error thrown in server start and restart, ensure that the timer is
not started and that the state of the server is stopped
6. Cancel the monitor on server start or restart, ensure time stops
7. Ensured that if the server is started or restarted before the timer begins,
the time will not wait (the timer will start and end immediately)
8. Ensure that when the server is detected as stopped, the stop timer will be
stopped after the wait interval of 1000 ms (instead of the past behaviour of
waiting until the timeout before exiting the thread)
9. Start server, wait for a long setup operation in the delegate, and ensure
the timer doesn't begin until the delegate returns
Comment 2 Steven Hung CLA 2012-04-27 00:22:00 EDT

*** This bug has been marked as a duplicate of bug 377566 ***