United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6647280 no logfile for zipper.exe and unpack200.exe during JRE install
JDK-6647280 : no logfile for zipper.exe and unpack200.exe during JRE install

Details
Type:
Bug
Submit Date:
2008-01-04
Status:
Closed
Updated Date:
2010-09-17
Project Name:
JDK
Resolved Date:
2008-03-17
Component:
install
OS:
windows_xp
Sub-Component:
install
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u3
Fixed Versions:
6u10 (b12)

Related Reports
Backport:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
The log output from zipper.exe and unpack200.exe is lost and not available for troubleshooting reports of Error 1722.

The LOGFILE property is not set during install for zipper.exe and unpack200.exe.

The log file is passed as an empty quoted string:
zipper.exe "C:\Program Files\Java\jre6\core.zip" "C:\Program Files\Java\jre6\" ""
or
unpack200.exe -r -v -l "" "C:\Program Files\Java\jre6\lib\rt.pack" "C:\Program Files\Java\jre6\lib\rt.jar"

                                    

Comments
EVALUATION

MSIGetLogFileName() is not setting the property LOGFILE,
and custom actions like rt do not have a log file.  For example,
"[lib]launcher.exe" "[bin]unpack200.exe" -r -v -l "[LOGFILE]" "[INSTALLDIR]lib\rt.pack" "[INSTALLDIR]lib\rt.jar"
is executed as
"C:\Program Files\Java\jre6\lib\launcher.exe" "C:\Program Files\Java\jre6\bin\unpack200.exe" -r -v -l "" "C:\Program Files\Java\jre6\lib\rt.pack" "C:\Program Files\Java\jre6\lib\rt.jar"
and
unzipcore does not have a log file:
CustomActionSchedule(Action=unzipcore,ActionType=3090,Source=C:\Program Files\Java\jre6\zipper.exe,Target="C:\Program Files\Java\jre6\core.zip" "C:\Program Files\Java\jre6\" "",)


I've confirmed with printf's that the call to MsiSetProperty() is failing in MSIGetLogFileName() and LOGFILE is not set.

I have found documentation that MsiSetProperty() from a deferred custom action is not supposed to work.
"It is necessary to set properties with custom actions that have an in-script execution option other than deferred execution." in http://support.installshield.com/kb/view.asp?articleid=Q104413
and
"Any custom action that sets a property should be scheduled for immediate execution."
in http://helpnet.installshield.com/robo/projects/installshield11helplib/IHelpInsertCARulesPropertyDirectory.htm

I made changes so it was actually writing to java_install.log (which will be a help in debugging in the future).

This execution code to fix the logging can be enhanced to report specific errors instead of generic Error 1722s.
Use of Launcher.exe during install gets replaced by the same code in regutils.cpp.
I need to add code to post a custom error message with the command that failed (which replaces Error 1722).
                                     
2008-01-04
SUGGESTED FIX

Log zipper.exe output to %TEMP%\java_install.log.  
Added Error 25099. Unzipping core files failed.

Log unpack200.exe output to %TEMP%\java_install.log. 
launcher.exe replaced by ExecuteProgram().
Added specific error numbers:
Error 26011. Unpacking rt failed.
Error 26022. Unpacking charsets failed. 
Error 26033. Unpacking deploy failed. 	
Error 26044. Unpacking javaws failed. 	
Error 26055. Unpacking plugin failed. 	
Error 26066. Unpacking jsse failed. 	
Error 26077. Unpacking localedata failed. 	

added SetupError ErrorIcon pointing to existin NewBinary4 (warning icon) to fix getting an error 2835 while handling another error.
For example, Error 2835 has be logged while handling and logging an error, like:
DEBUG: Error 2835:  The control ErrorIcon was not found on dialog SetupError
Internal Error 2835. ErrorIcon, SetupError
Error 26022.  Unpacking charsets failed.


webrev: http://sa.sfbay.sun.com/projects/deployment_data/6u10/6647280.4
testcases: http://oklahoma.east/deployment/www/tests/1.6.0_10/6647280/testcase_6647280.txt
                                     
2008-01-31



Hardware and Software, Engineered to Work Together