JDK-6258006 : JRE installer asks for reboot more often than it should
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 5.0u2
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • CPU: generic
  • Submitted: 2005-04-19
  • Updated: 2010-04-04
  • Resolved: 2006-11-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other JDK 6
5.0u5Fixed 6 b48Fixed
Description
The problem is that our installer detects if the system itself needs a
reboot.  Even if our installer is not the reason it needs a reboot,
we will ask for a reboot.  Say if you installed Itunes, and it asked for
a reboot, and you clicked on NO.  Then if you install java, it will ask
for a reboot because there are pending files that need a reboot.

This is all because our msi installer is very complicated with all of
the elevated privileges/unpacking/updating, and this was the only way we
could detect if we need a reboot.

I think there might be a way to improve this if we detect ahead of time if we think we'll need a reboot, rather than detect afterwards if we need a reboot.  We would have to check if the following files are locked:

winsystem/java.exe
winsystem/javaw.exe
winsystem/jpicpl32.cpl
Mozilla-family/plugins/np*

If any of these files are locked, we should ask for a reboot.

There is a problem with elevated privileges, which you cannot detect if files in the system directory are locked because you don't have permission.  The only way to do this would be to do it with a customaction that is defered in the system context, and therefore you cannot set the variable in the msi table from it.  

So I think the only way to do this is to do it in the jre-iftw.exe, and if a reboot is needed, it will pass REBOOT=true to the msiexec.exe.
###@###.### 2005-04-19 22:30:19 GMT

Comments
SUGGESTED FIX http://j2se.east/www/webrevs/billyh/6258006.mustang
25-07-2005

EVALUATION See MR ###@###.### 2005-06-06 19:30:00 GMT
06-06-2005