This issue is specific to Tomcat service installations o Microsoft Windows performed with an exe installer. Tested on Windows 7. Steps to reproduce: 1. Run apache-tomcat-8.0.15.exe to install Tomcat. Click-through the installer to complete installation process. On the last page you may uncheck [ ] Run Apache Tomcat, [ ] Show Readme items. It does not help for the issue. 2. Go to Windows "Start" menu. Start > All Programs > Apache Tomcat 8.0 Tomcat8 > Uninstall Tomcat 8.0 Expected, observed with Tomcat 8.0.14: ======= An UAC prompt is shown by Windows. You confirm raise of privileges and uninstallation wizard dialog appears. You start uninstallation and it completes successfully. Actual, with Tomcat 8.0.15: ======= No UAC prompt. Wizard dialog appears. You start uninstallation. Uninstallation completes, but it complains that it failed to remove some files from Tomcat directory. Actually it fails to remove any files from Tomcat directory on C:\Program Files. The only thing that it does is removal of items from Tomcat group in Start menu. Workaround =========== Tomcat can be uninstalled via Windows Control Panel. (Failed uninstallation does not remove Tomcat from the list of installed programs). Uninstallation from Windows Control Panel completes successfully.
It looks that RequestExecutionLevel directive from r1630897 affects not only installer, but also the uninstaller that is written by it. Reference: http://nsis.sourceforge.net/Reference/RequestExecutionLevel
Also http://nsis.sourceforge.net/Docs/Chapter4.html#arequestexecutionlevel
I ma leaning towards reverting r1630897 and adding a note to BUILDING.txt that UAC needs to be disabled for an unattended build.
(In reply to Mark Thomas from comment #3) > I ma leaning towards reverting r1630897 and adding a note to BUILDING.txt > that UAC needs to be disabled for an unattended build. or code signing has to be turned off. Maybe launching Apache Ant from within command shell that already has raised privileges will help, like Tomcat installation recipe from bug 56143.
Fixed in trunk and 8.0.x for 8.0.16 onwards.