[
https://issues.apache.org/jira/browse/LUCENENET-284?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780141#action_12780141
]
Andrei Iliev commented on LUCENENET-284:
----------------------------------------
It was (in 2.9.0) in
Lucene.Net.Search.TestDisjunctionMaxQuery.TestBooleanRequiredEqualScores test
case.
Now (in 2.9.1) it passed but (if just found why) it is due to fact that the
Clone method now is different the code in Java.
In java it is:
public Object clone() {
DisjunctionMaxQuery clone = (DisjunctionMaxQuery)super.clone();
clone.disjuncts = (ArrayList)this.disjuncts.clone();
return clone;
}
In Lucene.Net 2.9.1 it is:
public override System.Object Clone()
{
DisjunctionMaxQuery clone = (DisjunctionMaxQuery) base.Clone();
return clone;
}
But in Lucene.Net 2.9.0 it was similar to java code.
public override System.Object Clone()
{
DisjunctionMaxQuery clone = (DisjunctionMaxQuery) base.Clone();
clone.disjuncts = (System.Collections.ArrayList)
this.disjuncts.Clone();
return clone;
}
If you change Clone method back as it is in java, test case will fail until
you apply patch.
I don't know why in Lucene.Net 2.9.1 Clone method was modified. But I think it
is bad practice to diverge from java until it is absolutely necessary ( and in
such a case it should be documented).
> java vs .Net GetHashCode and Equals for ArrayList
> --------------------------------------------------
>
> Key: LUCENENET-284
> URL: https://issues.apache.org/jira/browse/LUCENENET-284
> Project: Lucene.Net
> Issue Type: Bug
> Reporter: Andrei Iliev
> Attachments: ArrayList.patch, ComparableListOfT.patch
>
>
> 1)In java the hash code of a list (and ArrayList) is defined to be the result
> of the following calc:
> <code>
> hashCode = 1;
> Iterator i = list.iterator();
> while (i.hasNext()) {
> Object obj = i.next();
> hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode());
> }
> </code>
> In .Net it hash code of object itself.
>
> 2) In java two lists are defined to be equal if they contain the same
> elements in the same order.
> In .Net it compares the object references.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.