> sorry for all the noise. I am also so sorry for my noise. > See PairTest.testPairOfAbstractMapSimpleEntry(). You explained everything. Thank you.
sebb <seb...@gmail.com> ezt írta (időpont: 2024. szept. 26., Cs, 16:23): > On Thu, 26 Sept 2024 at 14:52, Gary Gregory <garydgreg...@gmail.com> > wrote: > > > > Sebb, > > > > Pair _is_ a Map.Entry. > > I get it now, sorry for all the noise. > > As you wrote at the start, the examples are not valid Map.Entry > instances, so their behaviour is not guaranteed. > > It's not sufficient to satisfy the compiler. > The implementation must also satisfy the Map.Entry contract. > > > Gary > > > > On Thu, Sep 26, 2024, 9:46 AM sebb <seb...@gmail.com> wrote: > > > > > On Thu, 26 Sept 2024 at 14:33, Gary D. Gregory <ggreg...@apache.org> > > > wrote: > > > > > > > > Andrea, > > > > > > > > The relevant contract is > > > > https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.Entry.html#equals(java.lang.Object) > > > > > > Which says "Returns true if the given object is also a map entry and > ..." > > > > > > Also any class that overrides Object equals must be symmetric (and > > > transitive etc). > > > > > > Note that Map.Entry#equals returns false when compared against Pair; > > > it is compliant, even though it omits to repeat the Object contract in > > > its Javadoc. > > > > > > It is Pair#equals that gets it wrong. > > > > > > > Gary > > > > > > > > On 2024/09/26 12:45:07 Andrea Spinelli wrote: > > > > > IMHO, a Pair should not be equal to anything which is not a Pair. > > > > > > > > > > Reading the contract for equals > > > > > > > > > > > > > > https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object) > > > > > > > > > > > > > > > it must be symmetric, so Pair.equals should return false if the > > > argument is a MapEntry > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > Da: Dávid Szigecsán <sige...@gmail.com> > > > > > Inviato: giovedì 26 settembre 2024 13:36 > > > > > A: Commons Users List <user@commons.apache.org> > > > > > Oggetto: Re: Bug in org.apache.commons.lang3.tuple.Pair > > > > > > > > > > Hi, > > > > > As I see the "problem". > > > > > Pair.equal() returns true if the other entity is not an instance of > > > Pair. > > > > > In this case it is a Map.Entry. > > > > > Map.Entry.equals() howewer checks if the other is an instance of > the > > > same > > > > > class. So if we want them to be equals, we should change the > Map.Entry, > > > > > that is out of our limit of power. To make it symmetric we could > check > > > for > > > > > the instances of the same class also (and return false in this > case), > > > but I > > > > > think we don't want this. > > > > > > > > > > Dávid > > > > > > > > > > Alex Tsvetkov <a.e.tsvet...@gmail.com> ezt írta (időpont: 2024. > > > szept. 26., > > > > > Cs 13:11): > > > > > > > > > > > Hi. > > > > > > > > > > > > I found a bug in the implementation of the method `equals` of > class > > > `Pair`. > > > > > > > > > > > > Implementation must be symmetric. Current implementation is not. > > > > > > > > > > > > Her test showing the problem: > > > > > > > > > > > > ``` > > > > > > > > > > > > @Test > > > > > > void run() { > > > > > > var pair = Pair.of("a", "b"); > > > > > > var entry = new Map.Entry<String, String>() { > > > > > > public String getKey() { return "a"; } > > > > > > public String getValue() { return "b"; } > > > > > > public String setValue(String value) { return null; } > > > > > > }; > > > > > > assertTrue(pair.equals(entry)); // true > > > > > > assertTrue(entry.equals(pair)); // false > > > > > > } > > > > > > ``` > > > > > > > > > > > > > > > > -- > > > > > Il messaggio è stato analizzato da Libraesva ESG. > > > > > Seguire il link qui sotto per segnalarlo eventualmente come spam: > > > > > http://antispam01.imteam.it/action/4XDs5M0fYhzKmXJ/report-as-bad > > > > > Seguire il link qui sotto per mettere in blocklist il mittente: > > > > > http://antispam01.imteam.it/action/4XDs5M0fYhzKmXJ/blocklist > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > > > > For additional commands, e-mail: user-h...@commons.apache.org > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > > > For additional commands, e-mail: user-h...@commons.apache.org > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > For additional commands, e-mail: user-h...@commons.apache.org > >