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
|
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).
|