MetaDataInheritanceComparator/InheritanceComparator need some improvement ------------------------------------------------------------------------- Key: OPENJPA-583 URL: https://issues.apache.org/jira/browse/OPENJPA-583 Project: OpenJPA Issue Type: Bug Components: kernel Affects Versions: 1.0.2, 1.0.3, 1.1.0, 1.2.0 Environment: Windows XP java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13) Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode) Reporter: Amy Yang Priority: Minor Current MetaDataInheritanceComparator/InheritanceComparator has 2 problems: 1. the support of interfaces seems incorrect. when calculating the level value of an interface, the logic is if (to.isInterface()) return to.getInterfaces().length; we should calculate the level value also based on the inheritance of the interfaces. 2. when comparing 2 objects (o1 and o2) with MetaDataInheritanceComparator, if o1 has a primary key field p1, then we should compare p1 and o2 first, and then compare o1 relative to the result. current logic seems incomplete: for (int i = 0; i < fmds.length; i++) { if (fmds[i].isPrimaryKey() && m2.getDescribedType(). isAssignableFrom(fmds[i].getDeclaredType())) return 1; } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.