diff options
authorRoberto Tyley2013-05-16 10:44:41 (EDT)
committer Roberto Tyley2013-05-16 10:44:41 (EDT)
commite7fc19fc0c8099a7076d883798d3439403bdbb6e (patch)
parentc93a59330249677cd990820b59558a39f747009f (diff)
Fix AnyObjectId's generic type declaration of Comparablerefs/changes/85/12885/1
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: The current type signature of Comparable<Object> 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
1 files changed, 1 insertions, 5 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/
index e408c79..9db4a61 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/
@@ -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<Object> {
+public abstract class AnyObjectId implements Comparable<AnyObjectId> {
* Compare to object identifier byte sequences for equality.
@@ -184,10 +184,6 @@ public abstract class AnyObjectId implements Comparable<Object> {
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.