The ResourceHashtable key for the resolution error table is the value of the address of constant pool + index. This assumes that the index is for the constant pool so that this would point to a unique value within a given constant pool.
Invokedynamic bootstrap method errors also save entries in the resolution error table, but use an offset from the cpCache index. So cpool + cpCache_index + offset will not be guaranteed to point within the constant pool and might be ambiguous with another constant pool and index. It's not likely, but it's possible.
The ResolutionErrorTable needs to have a key that compares the constant pool and index, and not the sum of the two.
The address arithmetic is wrong for any constant pool entries too.
Invokedynamic bootstrap method errors also save entries in the resolution error table, but use an offset from the cpCache index. So cpool + cpCache_index + offset will not be guaranteed to point within the constant pool and might be ambiguous with another constant pool and index. It's not likely, but it's possible.
The ResolutionErrorTable needs to have a key that compares the constant pool and index, and not the sum of the two.
The address arithmetic is wrong for any constant pool entries too.