diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveFormat.java b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveFormat.java
index 20ce605..76c4efc 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveFormat.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ArchiveFormat.java
@@ -17,6 +17,7 @@
 import com.google.common.base.Enums;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import java.util.Arrays;
 import java.util.Optional;
 import org.eclipse.jgit.api.ArchiveCommand;
 import org.eclipse.jgit.archive.TarFormat;
@@ -105,11 +106,9 @@
     if (formats.length == 0) {
       return Optional.of(format);
     }
-    for (String allowed : formats) {
-      if (format.name().equals(allowed.toUpperCase())) {
-        return Optional.of(format);
-      }
-    }
-    return Optional.empty();
+    return Arrays.stream(formats)
+        .filter(format.name()::equalsIgnoreCase)
+        .findFirst()
+        .map(x -> format);
   }
 }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java b/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
index 8f814f0..2fbe102 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/ConfigUtil.java
@@ -95,8 +95,8 @@
    */
   public static Optional<TimeZone> getTimeZone(
       Config config, String section, String subsection, String name) {
-    String id = config.getString(section, subsection, name);
-    return id != null ? Optional.of(TimeZone.getTimeZone(id)) : Optional.empty();
+    return Optional.ofNullable(config.getString(section, subsection, name))
+        .map(TimeZone::getTimeZone);
   }
 
   private ConfigUtil() {}
