1 Reply Latest reply on Jan 14, 2013 8:33 AM by Lawrence Garvin

    Java 7u10 mystery directives in package boot

    Andrew M

      The package boot config for the Java 7u10 (x86 for x64) package (both the install and the upgrade versions) contains a few directives that aren't in the straight x64 and x86 packages. Does anyone know what they are for and why they are only in that package and not in the other two java packages?


      In the "Before Applying Package" section are three directives that aren't in the other packages:

      1. A directive that terminates processes with open handles to  a long list of dlls from the JavaHome directory
      2. An MSI uninstall for product code {26A24AE4-039D-4CA4-87B4-2F83217007FF}, which appears to be 32-bit Java 7u7.
      3. A directive that runs the command line "/c %MODULEPATH%\make_mod.cmd". This appears to be a batch file that updates the registry to change the system profile path for the local system account from %systemroot%\system32\config\systemprofile to %systemroot%\syswow64\config\systemprofile

      Finally, in the "After Applying Package" section is another batch file that changes the systemprofile path back to %systemroot%\system32\config\systemprofile


      I gather that the batch files u10 mustery package ppt are a workaround for some complication when installing a 32-bit application on a 64-bit system, but what about the first two? Why does only this package need to close a bunch of file handles when the others don't? Why is 32-bit Java 7u7 singled out for uninstall, and shouldn't that be handled by the 7u10 installer anyway?

        • Re: Java 7u10 mystery directives in package boot
          Lawrence Garvin

          Almost certainly they're only in the Java 7u10 (x86 for x64) package because they are only required in that scenario (dealing with the JRE7u10 x86 installation on an x64 system).


          Yes, the 7u10 installer should automatically handle the uninstallation of earlier versions of JRE7. The fact that the packaging team found it necessary to include an explicit instruction to uninstall JRE7u7 suggests to me that something in JRE7u10 is broken. No great surprise there, as we've recently been entertained by numerous defects in JRE7, another one discovered just as you were writing this post, and JRE7u11 was released by Oracle yesterday. (No doubt we'll be working on packaging it today.)


          All of the Java packages have commands to check for open files and terminate processes. This has been a basic component of Java packages since the first one included with Patch Manager - in fact, this capability, for JRE updates, was one of the primary reasons PackageBoot was created. I'll take a look at the packages and see if there's anything notably worthy of comment; if so, I'll write a blog post and/or have a KB article written.