[
https://issues.apache.org/jira/browse/OPENJPA-2197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13277618#comment-13277618
]
Mark Struberg commented on OPENJPA-2197:
----------------------------------------
We currently use the Method#hashCode in the MethodComparator. But this is
really ugly, as it's defined as :
/**
* Returns a hashcode for this <code>Method</code>. The hashcode is
computed
* as the exclusive-or of the hashcodes for the underlying
* method's declaring class name and the method's name.
*/
Please note that Method#hashCode does *NOT* cover any method parameters!
As we do already equals on class and the method name, this doesn't bring any
benefit.
> MethodComparator in AnnotationPersistenceMetaDataParser should also compare
> parameters
> --------------------------------------------------------------------------------------
>
> Key: OPENJPA-2197
> URL: https://issues.apache.org/jira/browse/OPENJPA-2197
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 2.2.0
> Reporter: Mark Struberg
> Assignee: Mark Struberg
> Fix For: 2.3.0
>
> Attachments: OPENJPA-2197_test.patch
>
>
> AnnotationPersistenceMetaDataParser contains a MethodComparator which only
> compares the class + the method name. Too bad I have (had...) 2 methods with
> the same name in my EntityListener:
> @PreUpdate
> public void updateChangeLog(Object entity) { ..
> and also
> private void updateChangeLog(BaseEntity he, ChangeLogEntry cle)
> which is a private helper method.
> Due to the bug in MethodComparator, my @PreUpdate sometimes didn't get
> detected.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira