JDK-6494152 : java-update should download new patch.exe instead of iftw.exe
  • Type: Enhancement
  • Component: install
  • Sub-Component: install
  • Affected Version: 6u2
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-11-15
  • Updated: 2011-03-11
  • Resolved: 2011-03-11
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.
6u10Fixed 7 b64Fixed
Right now Java update works like this:

1. User has Java 6 JRE installed
2. User get's prompted that Java-update 6u2 is "ready for download"
3. User clicks yes, and the java-update downloads the online installer iftw.exe
4. Once the 200KB iftw.exe is downloaded in the background using the BITS technology (usually very fast), the user get's immediately prompted again that Java-update 6u2 is "ready for install"
5. The iftw.exe gets run, and then the msi engine now beings the download of the 6u1 patch.

This really is the wrong way to do things.  After clicking on "ready to download", everything that gets downloaded should really get downloaded all at once.  It's pointless to prompt the user and use BITS to download a small 200KB bootstrap.  After clicking "ready to install", it should only be installing at that point (not downloading more).  This is a really bad UE.  

Note: The reason this is the way it is is because java-update and the online installer were developed in parallel by two teams in 1.4.2, and sort of thrown together like this.  1.4.2 was a very crunched/pressured release and tradeoffs like this happen.  

It would be really great if we do all of the downloading using our own reliable code that uses BITS, rather than using the problematic msi download engine.  It would also be great if "ready to download" meant what it says, and "ready to install" meant what it says.  And the actual download will actually take place in the background using BITS, and it'll give the user a better perception of the update download.

EVALUATION The fix for this (uncverified) was delivered into JDK7 b64 as part of: 6797688: Umbrella: Merge all JDK 6u4 - 6u12 deployment code into JDK7

EVALUATION Forward ported the changes from 6u5(project hamburg) ws.

EVALUATION We can create a new msi that only has the patcher included. We'll wrap this msi with the same wrapper that's used for the offline-s. Java 6 releases will always get updated to this .exe. We'll have to remove the "custom installation" feature for updates, so users can't go and choose the extra feature (technical reasons why). After all, java-update is there to patch the JRE, not to give them features they didn't choose on previous installs. They can later go through the add/remove programs and add additional features later if they way. To make that work, we'll have to pass SOURCELIST=http://java...../jre.msi. We'll then delete the patch msi after using it, so it'll use the sourcelist http location in maintenance mode. Users may still want to choose where they want to install Java, so we'll need to work that out. Maybe we can put the install dir file chooser on the license screen (in place of the typical/custom radiobutton).