From e7fc19fc0c8099a7076d883798d3439403bdbb6e Mon Sep 17 00:00:00 2001 From: Roberto Tyley Date: Thu, 16 May 2013 15:44:41 +0100 Subject: Fix AnyObjectId's generic type declaration of Comparable If you look at any implementation of Comparable in the JDK, you'll see that the type parameter for Comparable is supposed to be the type of the implementing class: http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html The current type signature of Comparable is pretty awful, at the very least because you can not, in fact, successfully compare AnyObjectId with any random subclass of Object. It also causes problems with type-inference and the scala.math.Ordering trait in Scala. In order to compile, this change *does* require removing the AnyObjectId.ompareTo(Object) method - which actually only ever cast to AnyObjectId in any case. Nothing in the JGit test suite requires this method, but it might constitute a breaking API change, so it would be best if it can be added in time for JGit 3.0. Change-Id: I3b549a5519ccd6785f98e444da76d2363bcbe41a --- org.eclipse.jgit/src/org/eclipse/jgit/lib/AnyObjectId.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/AnyObjectId.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/AnyObjectId.java index e408c79a3b..9db4a61c69 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/AnyObjectId.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/AnyObjectId.java @@ -57,7 +57,7 @@ import org.eclipse.jgit.util.NB; * with this instance can alter at any time, if this instance is modified to * represent a different object name. */ -public abstract class AnyObjectId implements Comparable { +public abstract class AnyObjectId implements Comparable { /** * Compare to object identifier byte sequences for equality. @@ -184,10 +184,6 @@ public abstract class AnyObjectId implements Comparable { return NB.compareUInt32(w5, other.w5); } - public final int compareTo(final Object other) { - return compareTo(((AnyObjectId) other)); - } - /** * Compare this ObjectId to a network-byte-order ObjectId. * -- cgit v1.2.3