4

I am configuring a brand new Lenovo U410 system with Windows 7 Home Premium for a user. I received the system direct from the shop. As part of the configuration I installed Java using the online installer. This worked correctly.

Later, due to a mistake I made, I needed to restore the system to factory default. The factory default FORMATS C:\ and puts back (supposedly) the exact factory configuration. However, after doing this, I was no longer able to install Java successfully using the same method I used before.

Now, whenever I attempt to use the online Java installer, the following happens. First of all, a window always appears "Welcome to Java", "Downloading Java Installer...". After short time this window disappears and then one of three things happens:

  1. The very first time I do this after doing a factory reset, I get a Windows error report, which contains this information:

    Application Name: JavaSetup7u5.exe
    Application Version: 7.0.50.6
    Application Timestamp: 4feacd84
    Fault Module Name: JavaIC.dll
    Fault Module Version: 9.9.9.9
    Fault Module Timestamp: 4f2343d6
    Exception Offset: 000052cb
    Exception Code: c0000417
    Exception Data: 00000000
    OS Version: 6.1.7600.2.0.0.768.3
    Locale ID: 1033
    Additional Information 1: 773c
    Additional Information 2: 773cd78cf06816f8246f359fa270f3bb
    Additional Information 3: f51a
    Additional Information 4: f51aaea7d22f36fa9e3a626b5a5cd1c3

    2. Subsequent runs produce either this error message:

    "Error: Java(TM) installer - Downloaded file C:\Users\\AppData\Local\Temp\fx-runtime.exe is corrupt."

    or

  2. Nothing happens at all. I Believe this is a red herring. Running the installer again causes a different error because the files were downloaded and the installer crashed before it could clean up. This isn't the actual problem, as when this happens the installer deletes the downloaded files, and then when you run it for the third time, it downloads everything again and does the javaic.dll crash. I suspect the downloader is appending to the existing files or something, causing the corruption.

I have tried all of the above as Administrator and as a normal user. I have tried reseting the system to factory defaults several times. I have tried downloading with Chrome and Internet Explorer 9. I have tried uninstalling all anti-virus software and disabling the windows firewall entirely. The only thing which makes a difference is running the installer in Windows XP compatibility mode, which allows the installation to complete.

I know I can workaround this error by using the offline installer so please don't post that as an answer. I am looking for an explanation of the root cause. Additionally, if I use the offline installer, the updater does not work. The updater also does not work if I install in XP mode. The updater fails because it works by just downloading the newest online setup and running it.

Also remember that the installers are digitally signed. The signitures verify correctly so there is no way in hell that this is caused by corrupted downloads.

Some theories I have:

  • The Java setup files on java.com actually changed in between the first successful install and my later attempts. Seems unlikely as none of the version numbers have changed. However, I have seen a couple of reports of this error which showed up in the past 24 hours. This looks like the most likely explanation right now: http://www.oracle.com/us/corporate/press/1735645 - Oracle released 7 update 6 two days ago. Careful inspection of the installers reveal that they are in fact attempting to download .6, not .5 as the download page claims. Not actually correct. Only the update tool tries to install 7u6. The online installer still tries 7u5. However, 7u6 being released two days ago is too much of a coincidence to ignore. Update: The 7u6 online installer is available from Oracle technetwork. It crashes in exactly the same way.

  • The factory reset software uses GMT-8 and I am on GMT-1. As a result, after factory reset, any software which cares to check would think that the system was restored 7 hours in the future, due to Window's awful policy of storing local time in the system clock. This could be confusing a certificate check or similar. Update: I discovered that this does cause Windows Update to fail. The workaround, setting the clock back before starting factory reset, does not enable Java to install correctly.

  • The factory reset image isn't really the same as what is installed in the main partition when you buy the system. Naughty Lenovo.

  • The installer appears to crash while installing or displaying something to do with the Ask.com toolbar. That seems to be what javaic.dll does.

  • Microsoft Tuesday was the 14th. Some update in that could be causing this. However, I'm factory reseting the machine every time, so unless the patches get slipstreamed into the recovery image, or there is some mechanism by which they get silently installed even if updates are disabled, then I don't see how this can be the cause.

Major breakthrough:

The default browser on Lenovo systems is Google Chrome. I noticed that the JavaIC.dll "sponsor check" actually does a check on your default browser in order to decide which sponsor ad to display. Normally that would get you the Ask toolbar on IE9. But that toolbar doesn't work on Chrome, and so the installer tries to display a different ad. The different ad is what causes the crash. Changing the default browser to IE9 allows the installer to run correctly. So this looks like a genuine bug in the sponsor ad code in the installer, caused by a combination of Google Chrome default browser and not being in the US. (Installer also checks your location using IP geolocation service and displays different ads based on that.)

10
  • Does deleting that temp file make any difference?
    – qweet
    Aug 16, 2012 at 8:41
  • @qweet exactly the same thing.
    – ali1234
    Aug 16, 2012 at 8:42
  • No, deleting temp files does not make any difference and in fact the first stage of the installer does this anyway.
    – ali1234
    Aug 16, 2012 at 8:43
  • @ali1234 - Just change the timezone bact to the default, install Java, then change it back. Of course fx-runtime.exe is corrupt points to the fact the file you downloaded is actually corrupt.
    – Ramhound
    Aug 16, 2012 at 10:59
  • I have tried this. It did not make any difference.
    – ali1234
    Aug 16, 2012 at 18:05

2 Answers 2

7

I have now found a workaround for this issue. After factory reset and before installing Java, perform these steps:

  1. Open Google Chrome and accept the terms and conditions, then quit it.
  2. Open Internet Explorer 9. It will ask if you want to use it as default browser. Click "Yes", and then quit.
  3. Open Google Chrome. It will ask if you want to use it as default browser. Say "yes".

You can now download and install Java using the online updater in either browser and it should work correctly.

As for the cause, it appears that the Lenovo factory image uses a non-standard method to set Google Chrome as the default browser. The JavaIC.dll must be reading a registry value that does not exist or similar, leading to it crashing with a buffer overflow (more likely a zero length buffer.)

4
  • 1
    My suggestion would be stop using the Lenovo factory image. I would install a clean Windows 7 installation. Anything you need to install you can get off the Lenovo website.
    – Ramhound
    Aug 22, 2012 at 12:04
  • Wiping the Lenovo recovery image voids the warranty.
    – ali1234
    Aug 22, 2012 at 22:26
  • 1
    You cannot void the hardware warranty with anything you do to the software, though obviously they are not obligated to provide you with software support at that point. However, I have never experienced any issue of any sort with Lenovo supporting systems with clean Windows 7 installs.
    – keltor
    Aug 24, 2012 at 15:15
  • I had same issue with Lenovo G580 laptop. I tried different ways to get around this issue, but couldn't get Java installed. Making IE as default browser solved the issue.
    – user161859
    Sep 28, 2012 at 1:12
3

You did not mention few more drastic measures:

  • Disabling Data Execution Prevention
  • Running in XP compatibility mode

Try googling the 4f2343d6 from your error report, there are other people with the same problem. It was understood as DEP caused.

To disable DEP, click my computer->properties->advanced->performance->settings->performance options->Data execution prevention. Reboot.

7
  • DEP is set to "Turn on DEP for essential Windows programs and services only" - The other option being "Turn on DEP for all programs and services except those I select". That would sort of explain why I can run fx-runtime.exe manually to install, but the main installer fails because it is using the MSI service (for which DEP is presumably enabled.)
    – ali1234
    Aug 17, 2012 at 3:03
  • Ok, I tried disabling DEP with bcdedit. It did not make any difference.
    – ali1234
    Aug 17, 2012 at 3:52
  • Running in XP SP2 compatibility mode seems to work. However, that isn;t much use if the automatic updater is going to fail every time, as I doubt the owner of this machine will know or care how to manually download the updates and run them in XP mode.
    – ali1234
    Aug 17, 2012 at 4:23
  • > Try googling the 4f2343d6 from your error report Why would you Google the timestamp of JavaIC.dll?
    – Synetech
    Aug 18, 2012 at 14:19
  • @Synetech Googling is for troubleshooting things. This dll is exactly the thing causing a problem
    – user27803
    Aug 18, 2012 at 14:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .