At first, I thought it might be something to do with the Vista UAC, but couldn’t find anything on google. Then thinking Java might have have some quirks on Vista, but turns out my problem have nothing to do with that. Then an entry on Tomcat FAQ that is remotely related caught my attention. The question is “Why aren't access logs showing up in Tomcat on Vista?”. The answer says it’s folder permissions messing with logging function, however, some logs write through mysteriously. When the word “mysteriously” comes out in diagnosing programming problems, it means it’s going to take a very long time to fix it, so I take the suggestion from the entry, moving tomcat folder out of “Program Files” folder. Everything magically started working again.