HADOOP-16196. Path Parameterize Comparable.

Author:    David Mollitor <david.mollitor@cloudera.com>

(cherry picked from commit 246ab77f28)
This commit is contained in:
David Mollitor 2019-03-22 10:27:17 +00:00 committed by Steve Loughran
parent 39f60faa60
commit 9a449ac075
No known key found for this signature in database
GPG Key ID: D22CF846DBB162A0
2 changed files with 11 additions and 12 deletions

View File

@ -40,7 +40,8 @@ import org.apache.hadoop.conf.Configuration;
@Stringable
@InterfaceAudience.Public
@InterfaceStability.Stable
public class Path implements Comparable, Serializable, ObjectInputValidation {
public class Path
implements Comparable<Path>, Serializable, ObjectInputValidation {
/**
* The directory separator, a slash.
@ -490,9 +491,8 @@ public class Path implements Comparable, Serializable, ObjectInputValidation {
}
@Override
public int compareTo(Object o) {
Path that = (Path)o;
return this.uri.compareTo(that.uri);
public int compareTo(Path o) {
return this.uri.compareTo(o.uri);
}
/**

View File

@ -860,16 +860,15 @@ public class MergeManagerImpl<K, V> implements MergeManager<K, V> {
}
@Override
public int compareTo(Object obj) {
if(obj instanceof CompressAwarePath) {
public int compareTo(Path obj) {
if (obj instanceof CompressAwarePath) {
CompressAwarePath compPath = (CompressAwarePath) obj;
if(this.compressedSize < compPath.getCompressedSize()) {
return -1;
} else if (this.getCompressedSize() > compPath.getCompressedSize()) {
return 1;
}
int c = Long.compare(this.compressedSize, compPath.compressedSize);
// Not returning 0 here so that objects with the same size (but
// different paths) are still added to the TreeSet.
if (c != 0) {
return c;
}
}
return super.compareTo(obj);
}