[ https://issues.apache.org/jira/browse/LANG-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15720199#comment-15720199 ]
Duncan Jones commented on LANG-1203: ------------------------------------ There may be some reasons why excluding a value from a hash code makes sense. See [this StackOverflow question|http://stackoverflow.com/questions/4748211/java-equal-and-hashcode-based-on-different-fields] for some discussion on that topic. I think there's an argument for having two annotations: * HashCodeExclude * EqualsAndHashCodeExclude I can't see how you can exclude something from equals and not from hash code. > Separated annotations HashCodeExclude and EqualsExclude break the general > contract for the hashCode method in java.lang.Object > ------------------------------------------------------------------------------------------------------------------------------ > > Key: LANG-1203 > URL: https://issues.apache.org/jira/browse/LANG-1203 > Project: Commons Lang > Issue Type: Bug > Components: lang.builder.* > Affects Versions: 3.5 > Reporter: Frank Forster > > Since version 3.5-SNAPSHOT the annotations HashCodeExclude and EqualsExclude > exist in component > [lang.builder.*|https://git-wip-us.apache.org/repos/asf?p=commons-lang.git;a=tree;f=src/main/java/org/apache/commons/lang3/builder;hb=HEAD]. > A separated handling of both annotations breaks the general contract for the > hashCode method in java.lang.Object ("If two objects are equal according to > the equals(Object) method, then calling the hashCode method on each of the > two objects must produce the same integer result."). > Rather there should exist only one exclude annotation dedicated to both > methods, like 'EqualsAndHashCodeExclude'. -- This message was sent by Atlassian JIRA (v6.3.4#6332)