JDK-8042957 : The new au64 project has several issues
  • Type: Bug
  • Component: install
  • Sub-Component: auto_update
  • Affected Version: 8u20
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-05-12
  • Updated: 2014-07-29
  • Resolved: 2014-05-16
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.
8u20 b17Fixed 9Fixed
Steps to reproduce:
1. Install jre 8u20-b13 32-bit promotion
2. Install jre 8u20-b13 64-bit promotion
3. setup AU to upgrade to 8u21

Expected behavior: It should install both 32bit and 64bit 8u21 JREs
Actual behavior: It Installs 32-bit 8u21, but removes 64-bit 8u20 and leaves the machine with no 64-bit JRE. 
Verified with 8u20 PIT b19

Verified in 8u20 b17 PIT

The main issue here is that there is a flawed if condition where it never gets to the UncompressDownloadedFile() function that uncompresses the 64-bit MSI. jinstall.cpp: 803 #ifdef FORAU 804 if (bIs64JreUpgradable) { 805 if ( (nRet == 0) 806 && !IsFileDownloaded(szSingle64msiCachedFile, szMessage) && !IsFileDownloaded(szAuMSICachedFile, szMessage) 807 && !UncompressDownloadedFile(hInstance, szMSTCachedDir, szSingle64msiCachedFile, szMessage) ) { 808 nRet = ERROR_MSI64_DOWNLD_FAILED; 809 logit("!IsFileDownloaded for 64-bit msi"); 810 } 811 } 812 #endif But while I was fixing this, I had to fix a bunch of other issues such as: -having the au.exe download the 64 patch when applicable (this will greatly reduce download size) -final dialog not showing -fix getPatchDir function to do what it's saying