Every now and then i notice how bad programs handle network problems. I am doing tcpip programming for quite some now and i dont know why this is so hard to achieve. See SoapUI in its current version. I have created a few services which only work when i am in a customer VPN. Now i accidentally double clicked on the service and SoapUI tries to retrieve some kind of WSDL definition. Of course it wont succeed because there is no route to the server, but SoapUI happily hangs in the "progress" window forever. The button "Run in background" doesnt work either then. All you can do then is to kill the app completely.
Same, but not so drastically, goes for the subversion component of IDEA. When i am in the customer VPN, i cant reach my SVN rep because the VPN soft eliminates all "normal" inbound and outbound traffic. It takes quite some time until some kind of timeout window occurs which drives me nuts.
So networks programmers out there. USE TIMEOUTS and USE SANE VALUES for them. Especially when you program blocking and non-cancelable tasks, you should be aware of the annoying potential.