DoubleBuffer.compareTo is not anti-symmetric
Alan Bateman
Alan.Bateman at Sun.COM
Sun Nov 22 07:41:27 PST 2009
Martin Buchholz wrote:
> I have a webrev for y'all at
>
> http://cr.openjdk.java.net/~martin/webrevs/openjdk7/DoubleBuffer/
>
> 6666666: (bf) Improve floating-point buffer comparison
>
> Describe the exact behavior of {Double,Float}Buffer.{equals,compareTo}.
>
> Fix the behavior of
> {Double,Float}Buffer.compareTo
> so that it satisfies the Comparable contract.
>
> I'd also like to fix the behavior of {Double,Float}Buffer.equals to be
> compatible with {Double,Float}.equals, but the proposed change assumes
> that we are stuck with the historic behavior and should simply
> document it.
>
> Martin
>
I've created this bug to track this:
6903754: (bf) Improve floating-point buffer comparison
I haven't had time yet to fully digest the proposal (at least, from an
initial glance, the 0.0/-0.0 case where it looks like equals and
compareTo will now be inconsistent). One passing comment on the javadoc
update is that the clarification as to how equals behaves might be
better to be part of item 3 rather than starting a new item (as it
logically follows). Also given that these are buffers of primitive types
then an alternative would be to be explicit as to how it it differs from
the Java Language == operator and do a "see also" for
Double#equals(double)? Minor comment on compareTo is that "invoking"
would be more consistent than "using".
Would you have time to add a test to
test/java/nio/Buffer/Basic-X.java.template for this? (you need to run
genBasic.sh to re-generate the tests when you change this).
-Alan.
More information about the nio-dev
mailing list