CoFHLib HashFix

Correct, it still does. And no, not using Factorization.

gregtech_1.7.10-6.17.00-33-gc86dcb955-dirty.jar

[20:15:24] [Client thread/INFO] [GT_ASM/CoFHCore]: Transforming cofh.lib.util.ComparableItem.hashCode

[20:15:56] [Client thread/ERROR] [FML/gregapi]: Exception caught during firing event net.minecraftforge.oredict.OreDictionary$OreRegisterEvent@34aae7d5:
java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode().  See bullet point two in that method's documentation. object #1 =class cofh.lib.util.ItemWrapper id= 1915621763 hashCode= 1915621763 toString= cofh.lib.util.ItemWrapper@1915621763{m:0, i:DelirusCrux.Netherlicious.Common.ItemBlocks.ItemBlockFullWood@764879660, v:1331}; object #2 =class cofh.lib.util.ItemWrapper id= 1220979379 hashCode= 1220979379 toString= cofh.lib.util.ItemWrapper@1220979379{m:0, i:DelirusCrux.Netherlicious.Common.ItemBlocks.ItemBlockFullWood@764879660, v:1331}

	at gnu.trove.impl.hash.TObjectHash.buildObjectContractViolation(TObjectHash.java:464) ~[TObjectHash.class:3.0.3]
	at gnu.trove.impl.hash.TObjectHash.throwObjectContractViolation(TObjectHash.java:448) ~[TObjectHash.class:3.0.3]
	at gnu.trove.map.hash.THashMap.rehash(THashMap.java:403) ~[THashMap.class:3.0.3]
	at gnu.trove.impl.hash.THash.postInsertHook(THash.java:388) ~[THash.class:3.0.3]
	at gnu.trove.map.hash.THashMap.doPut(THashMap.java:178) ~[THashMap.class:3.0.3]
	at gnu.trove.map.hash.THashMap.put(THashMap.java:145) ~[THashMap.class:3.0.3]
	at cofh.core.util.oredict.OreDictionaryArbiter.registerOreDictionaryEntry(OreDictionaryArbiter.java:92) ~[OreDictionaryArbiter.class:?]
	at cofh.core.Proxy.onOreRegisterEvent(Proxy.java:100) ~[Proxy.class:?]
	at cpw.mods.fml.common.eventhandler.ASMEventHandler_275_Proxy_onOreRegisterEvent_OreRegisterEvent.invoke(.dynamic) ~[?:?]
	at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?]
	at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?]
	at net.minecraftforge.oredict.OreDictionary.registerOreImpl(Unknown Source) [OreDictionary.class:?]
	at net.minecraftforge.oredict.OreDictionary.registerOre(Unknown Source) [OreDictionary.class:?]
	at gregapi.oredict.OreDictManager.registerOre_(OreDictManager.java:761) [OreDictManager.class:?]
	at gregapi.oredict.OreDictManager.setTarget_(OreDictManager.java:520) [OreDictManager.class:?]
	at gregapi.oredict.OreDictManager.addTarget_(OreDictManager.java:492) [OreDictManager.class:?]
	at gregapi.block.prefixblock.PrefixBlock.run(PrefixBlock.java:245) [PrefixBlock.class:?]
	at gregapi.api.Abstract_Mod.loadRunnables(Abstract_Mod.java:140) [Abstract_Mod.class:?]
	at gregapi.api.Abstract_Mod.onModInit(Abstract_Mod.java:205) [Abstract_Mod.class:?]
	at gregapi.GT_API.onLoad(GT_API.java:258) [GT_API.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_382]
[...]
java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode().  See bullet point two in that method's documentation. object #1 =class cofh.thermalexpansion.util.crafting.SmelterManager$ComparableItemStackSmelter id= 924717358 hashCode= 924717358 toString= cofh.thermalexpansion.util.crafting.SmelterManager$ComparableItemStackSmelter@924717358{m:0, i:net.minecraft.item.ItemMultiTexture@259604245, v:12}; object #2 =class cofh.thermalexpansion.util.crafting.SmelterManager$ComparableItemStackSmelter id= 982362316 hashCode= 982362316 toString= cofh.thermalexpansion.util.crafting.SmelterManager$ComparableItemStackSmelter@982362316{m:0, i:net.minecraft.item.ItemMultiTexture@259604245, v:12}

	at gnu.trove.impl.hash.TObjectHash.buildObjectContractViolation(TObjectHash.java:464)
	at gnu.trove.impl.hash.TObjectHash.throwObjectContractViolation(TObjectHash.java:448)
	at gnu.trove.set.hash.THashSet.rehash(THashSet.java:172)
	at gnu.trove.impl.hash.THash.postInsertHook(THash.java:388)
	at gnu.trove.set.hash.THashSet.add(THashSet.java:112)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addRecipe(SmelterManager.java:329)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addRecipe(SmelterManager.java:526)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addDustToIngotRecipe(SmelterManager.java:447)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addDefaultOreDictionaryRecipe(SmelterManager.java:357)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addDefaultOreDictionaryRecipe(SmelterManager.java:421)
	at cofh.thermalexpansion.util.crafting.SmelterManager.addDefaultRecipes(SmelterManager.java:148)
	at cofh.thermalexpansion.ThermalExpansion.postInit(ThermalExpansion.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
[...]

etc. Adding or removing mods will of course change up the collision…

[20:37:24] [Client thread/TRACE] [ThermalFoundation/ThermalFoundation]: Sending event FMLPreInitializationEvent to mod ThermalFoundation
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: Exception caught during firing event net.minecraftforge.oredict.OreDictionary$OreRegisterEvent@19cf7960:
java.lang.IllegalArgumentException: Equal objects must have equal hashcodes. During rehashing, Trove discovered that the following two objects claim to be equal (as in java.lang.Object.equals()) but their hashCodes (or those calculated by your TObjectHashingStrategy) are not equal.This violates the general contract of java.lang.Object.hashCode().  See bullet point two in that method's documentation. object #1 =class cofh.lib.util.ItemWrapper id= 596431057 hashCode= 596431057 toString= cofh.lib.util.ItemWrapper@596431057{m:16, i:cofh.core.item.ItemBase@811577645, v:4911}; object #2 =class cofh.lib.util.ItemWrapper id= 880796814 hashCode= 880796814 toString= cofh.lib.util.ItemWrapper@880796814{m:16, i:cofh.core.item.ItemBase@811577645, v:4911}

	at gnu.trove.impl.hash.TObjectHash.buildObjectContractViolation(TObjectHash.java:464) ~[TObjectHash.class:3.0.3]
	at gnu.trove.impl.hash.TObjectHash.throwObjectContractViolation(TObjectHash.java:448) ~[TObjectHash.class:3.0.3]
	at gnu.trove.map.hash.THashMap.rehash(THashMap.java:403) ~[THashMap.class:3.0.3]
	at gnu.trove.impl.hash.THash.postInsertHook(THash.java:388) ~[THash.class:3.0.3]
	at gnu.trove.map.hash.THashMap.doPut(THashMap.java:178) ~[THashMap.class:3.0.3]
	at gnu.trove.map.hash.THashMap.put(THashMap.java:145) ~[THashMap.class:3.0.3]
	at cofh.core.util.oredict.OreDictionaryArbiter.registerOreDictionaryEntry(OreDictionaryArbiter.java:92) ~[OreDictionaryArbiter.class:?]
	at cofh.core.Proxy.onOreRegisterEvent(Proxy.java:100) ~[Proxy.class:?]
	at cpw.mods.fml.common.eventhandler.ASMEventHandler_275_Proxy_onOreRegisterEvent_OreRegisterEvent.invoke(.dynamic) ~[?:?]
	at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54) ~[ASMEventHandler.class:?]
	at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?]
	at net.minecraftforge.oredict.OreDictionary.registerOreImpl(Unknown Source) [OreDictionary.class:?]
	at net.minecraftforge.oredict.OreDictionary.registerOre(Unknown Source) [OreDictionary.class:?]
	at cofh.core.item.ItemBase.addOreDictItem(ItemBase.java:133) [ItemBase.class:?]
	at cofh.thermalfoundation.item.TFItems.preInit(TFItems.java:82) [TFItems.class:?]
	at cofh.thermalfoundation.ThermalFoundation.preInit(ThermalFoundation.java:98) [ThermalFoundation.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_382]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_382]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_382]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) [FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_382]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) [LoadController.class:?]
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) [LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_382]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_382]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_382]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556) [Loader.class:?]
	at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:243) [FMLClientHandler.class:?]
	at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:480) [bao.class:?]
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878) [bao.class:?]
	at net.minecraft.client.main.Main.main(SourceFile:148) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_382]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_382]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_382]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_382]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) [NewLaunch.jar:?]
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) [NewLaunch.jar:?]
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) [NewLaunch.jar:?]
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: Index: 4 Listeners:
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: 0: NORMAL
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: 1: ASM: gregapi.oredict.OreDictManager@302a6a92 onOreRegistration1(Lnet/minecraftforge/oredict/OreDictionary$OreRegisterEvent;)V
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: 2: ASM: appeng.recipes.ores.OreDictionaryHandler@8394ce onOreDictionaryRegister(Lnet/minecraftforge/oredict/OreDictionary$OreRegisterEvent;)V
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: 3: ASM: ic2.core.IC2@59067553 registerOre(Lnet/minecraftforge/oredict/OreDictionary$OreRegisterEvent;)V
[20:37:24] [Client thread/ERROR] [FML/ThermalFoundation]: 4: ASM: cofh.core.ProxyClient@42ad30bf onOreRegisterEvent(Lnet/minecraftforge/oredict/OreDictionary$OreRegisterEvent;)V
[20:37:24] [Client thread/TRACE] [ThermalFoundation/ThermalFoundation]: Sent event FMLPreInitializationEvent to mod ThermalFoundation
3 Likes