LogServlet: Don't return explicit null for Optional return type
Change-Id: I21b3ec4eebf90b28e9d03ff6783340f79a7e626a
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
index 5f17081..577598a 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/LogServlet.java
@@ -202,8 +202,17 @@
}
}
+ private static class InvalidStartValueException extends IllegalArgumentException {
+ private static final long serialVersionUID = 1L;
+
+ InvalidStartValueException() {
+ super();
+ }
+ }
+
private static Optional<ObjectId> getStart(
- ListMultimap<String, String> params, ObjectReader reader) throws IOException {
+ ListMultimap<String, String> params, ObjectReader reader)
+ throws IOException, InvalidStartValueException {
List<String> values = params.get(START_PARAM);
switch (values.size()) {
case 0:
@@ -211,15 +220,15 @@
case 1:
String id = values.get(0);
if (!AbbreviatedObjectId.isId(id)) {
- return null;
+ throw new InvalidStartValueException();
}
Collection<ObjectId> ids = reader.resolve(AbbreviatedObjectId.fromString(id));
if (ids.size() != 1) {
- return null;
+ throw new InvalidStartValueException();
}
return Optional.of(Iterables.getOnlyElement(ids));
default:
- return null;
+ throw new InvalidStartValueException();
}
}
@@ -313,12 +322,12 @@
return null;
}
- Optional<ObjectId> start = getStart(view.getParameters(), walk.getObjectReader());
- if (start == null) {
+ try {
+ Optional<ObjectId> start = getStart(view.getParameters(), walk.getObjectReader());
+ return new Paginator(walk, getLimit(view), start.orNull());
+ } catch (InvalidStartValueException e) {
return null;
}
-
- return new Paginator(walk, getLimit(view), start.orNull());
}
}