fix issue #607: NPE in compareTo method of ResourceMetadataImpl

This commit is contained in:
Adrian Cole 2012-12-04 22:42:47 -08:00
parent 881bca7de2
commit fd65cbf203
1 changed files with 7 additions and 5 deletions

View File

@ -20,6 +20,8 @@ package org.jclouds.domain.internal;
import static com.google.common.base.Objects.equal;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.ComparisonChain.start;
import static com.google.common.collect.Ordering.natural;
import java.io.Serializable;
import java.net.URI;
@ -66,10 +68,10 @@ public abstract class ResourceMetadataImpl<T extends Enum<T>> implements Resourc
* {@inheritDoc}
*/
@Override
public int compareTo(ResourceMetadata<T> o) {
if (getName() == null)
return -1;
return (this == o) ? 0 : getName().compareTo(o.getName());
public int compareTo(ResourceMetadata<T> that) {
return start()
.compare(this.getName(), that.getName(), natural().nullsLast())
.result();
}
/**
@ -138,4 +140,4 @@ public abstract class ResourceMetadataImpl<T extends Enum<T>> implements Resourc
.add("name", name).add("location", location).add("uri", uri).add("userMetadata", userMetadata);
}
}
}