ReactOS seems to be crashing when trying to install JDK7+ and/or JRE7.
JDK basically crashes because it installs JRE, however it won't if you remove the JRE component to be installed from the JDK.
JDK and JRE crashes with different asserts, however the root of the issue is the same. The problem appears when a key is added under CLSID, which is known to store hundreds of keys.
The ASSERT is basically a mix of facts:
1) Our keys are not sorted in the memory structure, so we can't use the binary search done through CmpCompareInIndex.
2) When there is just one leaf, the CmpFindSubKeyInLeaf is used (thankfully, otherwise we would be having asserts everywhere)
3) When the number of entries force a split creating a second leaf, our code is using CmpCompareInIndex. However, as said, CmpCompareInIndex can just be used when, and just when, the entries are correctly sorted.
4) The patch hence ifdefs the use of CmpCompareInIndex and "expecting sorted entries code" until we have a correct sorting mechanism.
The patch seems to fix JRE and JDK, also the test case (which forces the creation of a second leaf) linked.
I'm not the author of the patch, just a flying bird drop it to me.
CORE-7817 Registry corruption problem (causing BSOD) during installation of jdk-7u51-windows-i586.exe
- relates to
CORE-3131 .NET 1.1 Setup crashes on registering Typeliberaries
ROSTESTS-141 [Patch]Test case which reproduces the JRE issue in registry