EVALUATION
It looks like the regdeploy project introduced this regression on the install side. These 2 lines were incorrectly removed from RegInstall.cpp:
regMapEntriesCurrent[index].szKey = L"JARFILE_PARAM";
regMapEntriesCurrent[index++].szData = A2OLE("\"%1\" %*");
when generating the RegCurrentVersion.rgs file, which looks like this:
HKCR
{
ForceRemove .jar = s 'jarfile'
{
}
ForceRemove jarfile = s 'Executable Jar File'
{
ForceRemove shell
{
ForceRemove open
{
ForceRemove command = s '"%JAVAHOME%\bin\javaw.exe" -jar %JARFILE_PARAM%'
}
}
}
NoRemove Applications
{
ForceRemove 'java.exe'
{
val IsHostApp = s ''
}
ForceRemove 'javaw.exe'
{
val IsHostApp = s ''
}
}
}
HKLM
{
NoRemove SOFTWARE
{
NoRemove JavaSoft
{
NoRemove 'Java Runtime Environment'
{
val CurrentVersion = s '%FAMILY_VERSION%'
}
}
}
}
This rgs file used to be riddled with plugin registries before we pruned them for the regdeploy project. So I must have missed that the JARFILE_PARAM was still in the rgs file after taking the deploy stuff out.
It looks like the HKLM tree of the rgs file was applied correctly, which would have made the issue more obvious if it hadn't. Only the HKCR part fails silently.
|