Apart from the messy lack of indentation, it looks gr8! 
However, if we directly invoke Server::dispose() instead of Server::stop(), your stopIsRequested βtrapβ is skipped! 
So you should place it inside Server::dispose() instead; given Server::stop() is merely an alias of it. 
BtW, no need to prefix stopIsRequested w/ keyword this in Java: 
Just stopIsRequested = true; works alright! 
P.S.: Iβve edited & included the stopRequested flag to my own version too! 