Code cleanup

--
MOS_MIGRATED_REVID=102239051
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
index 1b0383d..5a59cab 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
@@ -13,6 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.lib.bazel;
 
+import static com.google.common.base.StandardSystemProperty.USER_NAME;
+
 import com.google.common.base.Joiner;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Supplier;
@@ -81,7 +83,7 @@
       this.options = Preconditions.checkNotNull(options);
       this.stableStatus = stableStatus;
       this.volatileStatus = volatileStatus;
-      this.username = System.getProperty("user.name");
+      this.username = USER_NAME.value();
       this.hostname = NetUtil.findShortHostName();
       this.timestamp = System.currentTimeMillis();
       this.getWorkspaceStatusCommand =
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
index a9dccef..e879f75 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/commands/FetchCommand.java
@@ -80,7 +80,7 @@
     }
 
     PackageCacheOptions pkgOptions = options.getOptions(PackageCacheOptions.class);
-    if (pkgOptions.fetch == false) {
+    if (!pkgOptions.fetch) {
       runtime.getReporter().handle(Event.error(null, "You cannot run fetch with --fetch=false"));
       return ExitCode.COMMAND_LINE_ERROR;
     }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
index 4d67554..484c6e6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/DecompressorValue.java
@@ -42,7 +42,7 @@
       return true;
     }
 
-    if (other == null || !(other instanceof DecompressorValue)) {
+    if (!(other instanceof DecompressorValue)) {
       return false;
     }
 
@@ -126,7 +126,7 @@
         return true;
       }
 
-      if (other == null || !(other instanceof DecompressorDescriptor)) {
+      if (!(other instanceof DecompressorDescriptor)) {
         return false;
       }
 
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java
index 29c7b72..e8dc70c 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java
@@ -134,13 +134,12 @@
       // recursively includes itself as a submodule, which would result in an infinite
       // loop if submodules are cloned recursively. For now, limit submodules to only
       // the first level.
-      if (descriptor.initSubmodules) {
-        if (!git.submoduleInit().call().isEmpty()) {
-          git.submoduleUpdate()
-              .setProgressMonitor(
-                  new GitProgressMonitor("Cloning submodules for " + descriptor.remote, reporter))
-              .call();
-        }
+      if (descriptor.initSubmodules && !git.submoduleInit().call().isEmpty()) {
+        git
+            .submoduleUpdate()
+            .setProgressMonitor(
+                new GitProgressMonitor("Cloning submodules for " + descriptor.remote, reporter))
+            .call();
       }
     } catch (InvalidRemoteException e) {
       throw new RepositoryFunctionException(
@@ -218,7 +217,7 @@
       if (obj == this) {
         return true;
       }
-      if (obj == null || !(obj instanceof GitRepositoryDescriptor)) {
+      if (!(obj instanceof GitRepositoryDescriptor)) {
         return false;
       }
       GitRepositoryDescriptor other = (GitRepositoryDescriptor) obj;
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java
index 5c7bf51..f17f829 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java
@@ -110,7 +110,7 @@
       if (obj == this) {
         return true;
       }
-      if (obj == null || !(obj instanceof HttpDescriptor)) {
+      if (!(obj instanceof HttpDescriptor)) {
         return false;
       }
       HttpDescriptor other = (HttpDescriptor) obj;
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadValue.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadValue.java
index fbd989a..1d4561a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadValue.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadValue.java
@@ -43,7 +43,7 @@
     if (this == other) {
       return true;
     }
-    if (other == null || !(other instanceof HttpDownloadValue)) {
+    if (!(other instanceof HttpDownloadValue)) {
       return false;
     }
     HttpDownloadValue otherValue = (HttpDownloadValue) other;
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index 4880158..2133bd5 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -184,14 +184,19 @@
         }
       }
 
-      if (prerequisiteTarget instanceof PackageGroup) {
-        if (!attrName.equals("visibility")) {
-          context.reportError(rule.getAttributeLocation(attrName),
-              "in " + attrName + " attribute of " + rule.getRuleClass()
-              + " rule " + rule.getLabel() +  ": package group '"
-              + prerequisiteLabel + "' is misplaced here "
-              + "(they are only allowed in the visibility attribute)");
-        }
+      if (prerequisiteTarget instanceof PackageGroup && !attrName.equals("visibility")) {
+        context.reportError(
+            rule.getAttributeLocation(attrName),
+            "in "
+                + attrName
+                + " attribute of "
+                + rule.getRuleClass()
+                + " rule "
+                + rule.getLabel()
+                + ": package group '"
+                + prerequisiteLabel
+                + "' is misplaced here "
+                + "(they are only allowed in the visibility attribute)");
       }
     }
   }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
index 57e7757..bdf2291 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
@@ -142,11 +142,11 @@
         toolchain.getToolPathList().get(0).getPath());
 
     // Create file glob patterns for the various files that the toolchain references.
- 
-    String androidPlatformIncludes = NdkPaths.stripRepositoryPrefix(toolchain.getBuiltinSysroot())
-        + "/**/*";
 
-    List<String> toolchainFileGlobPatterns = new ArrayList<String>();
+    String androidPlatformIncludes =
+        NdkPaths.stripRepositoryPrefix(toolchain.getBuiltinSysroot()) + "/**/*";
+
+    List<String> toolchainFileGlobPatterns = new ArrayList<>();
     toolchainFileGlobPatterns.add(androidPlatformIncludes);
 
     for (String cxxFlag : toolchain.getUnfilteredCxxFlagList()) {
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ApiLevel.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ApiLevel.java
index 34e6663..eaf8be4 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ApiLevel.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/ApiLevel.java
@@ -136,7 +136,7 @@
 
     // Check that this API level supports the given cpu architecture (eg 64 bit is supported on only
     // 21+).
-    if (!API_LEVEL_TO_ARCHITECTURES.get(correctedApiLevel).contains(targetCpu)) {
+    if (!API_LEVEL_TO_ARCHITECTURES.containsEntry(correctedApiLevel, targetCpu)) {
       // If the given API level does not support the given architecture, find an API level that
       // does support this architecture. A warning isn't printed because the crosstools for
       // architectures that aren't supported by this API level are generated anyway, even if the
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkPaths.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkPaths.java
index 564a34d..690fde3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkPaths.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/ndkcrosstools/NdkPaths.java
@@ -184,24 +184,21 @@
 
   ImmutableList<String> createStlportIncludePaths() {
 
-    String prefix = "external/%repositoryName%/ndk/sources/cxx-stl/"
-        .replace("%repositoryName%", repositoryName);
+    String prefix =
+        "external/%repositoryName%/ndk/sources/cxx-stl/"
+            .replace("%repositoryName%", repositoryName);
 
-    return ImmutableList.<String>builder()
-        .add(prefix + "stlport/stlport")
-        .add(prefix + "gabi++/include")
-        .build();
+    return ImmutableList.of(prefix + "stlport/stlport", prefix + "gabi++/include");
   }
 
   ImmutableList<String> createLibcxxIncludePaths() {
 
-    String prefix = "external/%repositoryName%/ndk/sources/"
-        .replace("%repositoryName%", repositoryName);
+    String prefix =
+        "external/%repositoryName%/ndk/sources/".replace("%repositoryName%", repositoryName);
 
-    return ImmutableList.<String>builder()
-        .add(prefix + "cxx-stl/llvm-libc++/libcxx/include")
-        .add(prefix + "cxx-stl/llvm-libc++abi/libcxxabi/include")
-        .add(prefix + "android/support/include")
-        .build();
+    return ImmutableList.of(
+        prefix + "cxx-stl/llvm-libc++/libcxx/include",
+        prefix + "cxx-stl/llvm-libc++abi/libcxxabi/include",
+        prefix + "android/support/include");
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
index 66275dc..24391f3 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
@@ -101,7 +101,6 @@
 import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -190,7 +189,7 @@
     for (BlazeModule module : runtime.getBlazeModules()) {
       builder.addAll(module.getActionContextConsumers());
     }
-    builder.addAll(Arrays.asList(extraConsumers));
+    builder.add(extraConsumers);
     return builder.build();
   }
 
@@ -200,7 +199,7 @@
     for (BlazeModule module : runtime.getBlazeModules()) {
       builder.addAll(module.getActionContextProviders());
     }
-    builder.addAll(Arrays.asList(extraProviders));
+    builder.add(extraProviders);
     return builder.build();
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/collect/CollectionUtils.java b/src/main/java/com/google/devtools/build/lib/collect/CollectionUtils.java
index d7b04bb..55c1cad 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/CollectionUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/CollectionUtils.java
@@ -13,6 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.lib.collect;
 
+import static com.google.common.collect.Sets.newEnumSet;
+
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
@@ -189,7 +191,7 @@
       }
     }
 
-    return result.isEmpty() ? EnumSet.noneOf(clazz) : EnumSet.copyOf(result);
+    return newEnumSet(result, clazz);
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/EmptyNestedSet.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/EmptyNestedSet.java
index 5889ba8..8bf4d55 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/EmptyNestedSet.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/EmptyNestedSet.java
@@ -82,6 +82,6 @@
 
   @Override
   public int shallowHashCode() {
-    return Objects.hash(getOrder());
+    return Objects.hashCode(getOrder());
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
index 201fc37..7f25ad6 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/Order.java
@@ -14,6 +14,7 @@
 package com.google.devtools.build.lib.collect.nestedset;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
 
 import java.util.HashMap;
 
@@ -84,7 +85,7 @@
   static {
     Order[] tmpValues = Order.values();
 
-    HashMap<String, Order> entries = new HashMap<>(tmpValues.length);
+    HashMap<String, Order> entries = Maps.newHashMapWithExpectedSize(tmpValues.length);
 
     for (Order current : tmpValues) {
       entries.put(current.getName(), current);
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/RecordingUniqueifier.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/RecordingUniqueifier.java
index c71f200..51715ea 100644
--- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/RecordingUniqueifier.java
+++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/RecordingUniqueifier.java
@@ -15,9 +15,9 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
+import com.google.common.collect.Sets;
 
 import java.util.BitSet;
-import java.util.HashSet;
 import java.util.Set;
 
 /**
@@ -68,7 +68,7 @@
     SHARED_SMALL_MEMOS_2 = memos2;
   }
 
-  private final Set<Object> witnessed = new HashSet<>(256);
+  private final Set<Object> witnessed = Sets.newHashSetWithExpectedSize(256);
   private final BitSet memo = new BitSet();
   private int idx = 0;
 
diff --git a/src/main/java/com/google/devtools/build/lib/graph/DFS.java b/src/main/java/com/google/devtools/build/lib/graph/DFS.java
index 7930a2f..77ad5d9 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/DFS.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/DFS.java
@@ -14,7 +14,7 @@
 
 package com.google.devtools.build.lib.graph;
 
-import com.google.common.collect.Lists;
+import com.google.common.collect.Ordering;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -102,8 +102,7 @@
     Collection<Node<T>> edgeTargets = transpose
         ? node.getPredecessors() : node.getSuccessors();
     if (edgeOrder != null) {
-      List<Node<T>> mutableNodeList = Lists.newArrayList(edgeTargets);
-      Collections.sort(mutableNodeList, edgeOrder);
+      List<Node<T>> mutableNodeList = Ordering.from(edgeOrder).sortedCopy(edgeTargets);
       edgeTargets = mutableNodeList;
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/graph/Node.java b/src/main/java/com/google/devtools/build/lib/graph/Node.java
index d271ca0..b873b52 100644
--- a/src/main/java/com/google/devtools/build/lib/graph/Node.java
+++ b/src/main/java/com/google/devtools/build/lib/graph/Node.java
@@ -13,10 +13,11 @@
 // limitations under the License.
 package com.google.devtools.build.lib.graph;
 
+import com.google.common.collect.Sets;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.List;
 
 /**
@@ -173,8 +174,8 @@
       return true;
   } else if (previousSize == ARRAYLIST_THRESHOLD) {
       // ArrayList -> HashSet
-    Collection<Node<T>> newSet = new HashSet<>(INITIAL_HASHSET_CAPACITY);
-    newSet.addAll(set);
+      Collection<Node<T>> newSet = Sets.newHashSetWithExpectedSize(INITIAL_HASHSET_CAPACITY);
+      newSet.addAll(set);
       newSet.add(value);
       return updateField(predecessorSet, newSet);
     } else {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
index ca307a8..bfa4fa6 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/engine/AllPathsFunction.java
@@ -71,10 +71,8 @@
       Collection<T> reverseDeps = env.getReverseDeps(worklist);
       worklist = new ArrayList<>();
       for (T np : reverseDeps) {
-        if (reachableFromX.contains(np)) {
-          if (result.add(np)) {
-            worklist.add(np);
-          }
+        if (reachableFromX.contains(np) && result.add(np)) {
+          worklist.add(np);
         }
       }
     }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index 79260c9..0e552a6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -13,6 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.lib.rules.android;
 
+import static com.google.common.base.Strings.isNullOrEmpty;
+
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Joiner;
 import com.google.common.base.Optional;
@@ -664,7 +666,7 @@
 
   private static String getExpandedMakeVarsForAttr(RuleContext context, String attr) {
     final String value = context.attributes().get(attr, Type.STRING);
-    if (value == null || value.isEmpty()) {
+    if (isNullOrEmpty(value)) {
       return null;
     }
     return context.expandMakeVariables(attr, value);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
index e3f8f23..520e4c9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProvider.java
@@ -184,7 +184,7 @@
 
     @Override
     public int hashCode() {
-      return Objects.hash(label);
+      return Objects.hashCode(label);
     }
 
     @Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
index 896a73d..c97d5b6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
@@ -783,7 +783,7 @@
       } else {
         // TODO(bazel-team): once the LLVM compiler patches have been finalized, this should
         // be converted to a crosstool feature configuration instead.
-        List<String> opts = new ArrayList<String>(linkopts);
+        List<String> opts = new ArrayList<>(linkopts);
         opts.add("-flto");
         opts.add(
             "-Wl,-plugin-opt,thin-lto="
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
index 8f6ebcb..e89e3a1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
@@ -874,7 +874,7 @@
 
     if (ltoMap != null) {
       Preconditions.checkState(
-          ltoMap.size() == 0, "Still have LTO objects left: " + ltoMap + ", command-line: " + argv);
+          ltoMap.size() == 0, "Still have LTO objects left: %s, command-line: %s", ltoMap, argv);
     }
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
index 0285031..c894f2b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompileAction.java
@@ -640,10 +640,11 @@
           : "--indirect_dependency");
       builder.add(jar.getExecPathString());
       Label label = getTargetName(jar);
-      builder.add(label.getPackageIdentifier().getRepository().isDefault()
-          ? label.toString()
-          // Escape '@' prefix for .params file.
-          : "@" + label.toString());
+      builder.add(
+          label.getPackageIdentifier().getRepository().isDefault()
+              ? label.toString()
+              // Escape '@' prefix for .params file.
+              : "@" + label);
     }
     return builder.build();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/TargetDeviceFamily.java b/src/main/java/com/google/devtools/build/lib/rules/objc/TargetDeviceFamily.java
index 2233f96..49cac13 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/TargetDeviceFamily.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/TargetDeviceFamily.java
@@ -103,7 +103,7 @@
    */
   public static Set<TargetDeviceFamily> fromBuildSetting(String targetedDevice) {
     ImmutableSet.Builder<TargetDeviceFamily> result = ImmutableSet.builder();
-    for (String numericSetting : Splitter.on(",").split(targetedDevice)) {
+    for (String numericSetting : Splitter.on(',').split(targetedDevice)) {
       numericSetting = numericSetting.trim();
       switch (numericSetting) {
         case "1":
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
index fe9c2b6..23f19a9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -270,11 +270,12 @@
                   + "' need to be converted to Python 2 (not yet implemented)");
       }
     }
-    if (targetVersion == PythonVersion.PY3 || targetVersion == PythonVersion.PY2AND3) {
-      if (sourceVersion == PythonVersion.PY2ONLY) {
-        ruleContext.ruleError("Rule '" + source
-                  + "' can only be used with Python 2, and cannot be converted to Python 3");
-      }
+    if ((targetVersion == PythonVersion.PY3 || targetVersion == PythonVersion.PY2AND3)
+        && sourceVersion == PythonVersion.PY2ONLY) {
+      ruleContext.ruleError(
+          "Rule '"
+              + source
+              + "' can only be used with Python 2, and cannot be converted to Python 3");
     }
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index ddd3cb1..edd1b92 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -819,10 +819,8 @@
     eventBus.post(new CommandPrecompleteEvent(originalExit));
     // If Blaze did not suffer an infrastructure failure, check for errors in modules.
     ExitCode exitCode = originalExit;
-    if (!originalExit.isInfrastructureFailure()) {
-      if (pendingException != null) {
-        exitCode = pendingException.getExitCode();
-      }
+    if (!originalExit.isInfrastructureFailure() && pendingException != null) {
+      exitCode = pendingException.getExitCode();
     }
     pendingException = null;
     return exitCode;
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
index a2d03ae..a1242b0 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/FancyTerminalEventHandler.java
@@ -15,7 +15,7 @@
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
 import com.google.devtools.build.lib.events.Event;
 import com.google.devtools.build.lib.events.EventKind;
 import com.google.devtools.build.lib.util.Pair;
@@ -66,36 +66,36 @@
       //   [1,442 / 23,476] Compiling base/base.cc
       "^\\[(?:(?:\\d\\d?\\d?%)|(?:[\\d+,]+ / [\\d,]+))\\] ");
   private static final Splitter LINEBREAK_SPLITTER = Splitter.on('\n');
-  private static final List<String> SPECIAL_MESSAGES = ImmutableList.of(
-      "Reading startup options from "
-          + "HKEY_LOCAL_MACHINE\\Software\\Google\\Devtools\\Blaze\\CurrentVersion",
-      "Contacting ftp://microsoft.com/win3.1/downloadcenter",
-      "Downloading MSVCR71.DLL",
-      "Installing Windows Update 37 of 118...",
-      "Sending request to Azure server",
-      "Checking whether your copy of Blaze is Genuine",
-      "Initializing HAL",
-      "Loading NDIS2SUP.VXD",
-      "Initializing DRM",
-      "Contacting license server",
-      "Starting EC2 instances",
-      "Starting MS-DOS 6.0",
-      "Updating virus database",
-      "Linking WIN32.DLL",
-      "Linking GGL32.EXE",
-      "Starting ActiveX controls",
-      "Launching Microsoft Visual Studio 2013",
-      "Launching IEXPLORE.EXE",
-      "Initializing BASIC v2.1 interpreter",
-      "Parsing COM object monikers",
-      "Notifying field agents",
-      "Negotiating with killer robots",
-      "Searching for cellular signal",
-      "Checking for outstanding GCard expenses",
-      "Waiting for workstation CPU temperature to decrease"
-      );
+  private static final List<String> SPECIAL_MESSAGES =
+      ImmutableList.of(
+          "Reading startup options from "
+              + "HKEY_LOCAL_MACHINE\\Software\\Google\\Devtools\\Blaze\\CurrentVersion",
+          "Contacting ftp://microsoft.com/win3.1/downloadcenter",
+          "Downloading MSVCR71.DLL",
+          "Installing Windows Update 37 of 118...",
+          "Sending request to Azure server",
+          "Checking whether your copy of Blaze is Genuine",
+          "Initializing HAL",
+          "Loading NDIS2SUP.VXD",
+          "Initializing DRM",
+          "Contacting license server",
+          "Starting EC2 instances",
+          "Starting MS-DOS 6.0",
+          "Updating virus database",
+          "Linking WIN32.DLL",
+          "Linking GGL32.EXE",
+          "Starting ActiveX controls",
+          "Launching Microsoft Visual Studio 2013",
+          "Launching IEXPLORE.EXE",
+          "Initializing BASIC v2.1 interpreter",
+          "Parsing COM object monikers",
+          "Notifying field agents",
+          "Negotiating with killer robots",
+          "Searching for cellular signal",
+          "Checking for outstanding GCard expenses",
+          "Waiting for workstation CPU temperature to decrease");
 
-  private final Iterator<String> messageIterator = Iterables.cycle(SPECIAL_MESSAGES).iterator();
+  private final Iterator<String> messageIterator = Iterators.cycle(SPECIAL_MESSAGES);
   private volatile boolean trySpecial;
   private volatile Instant skipUntil = Instant.now();
 
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/TestResultAnalyzer.java b/src/main/java/com/google/devtools/build/lib/runtime/TestResultAnalyzer.java
index 33a228c..e9dbd9b 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/TestResultAnalyzer.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/TestResultAnalyzer.java
@@ -263,12 +263,13 @@
         .setRanRemotely(result.getData().getIsRemoteStrategy());
 
     List<String> warnings = new ArrayList<>();
-    if (status == BlazeTestStatus.PASSED) {
-      if (shouldEmitTestSizeWarningInSummary(
-          summaryOptions.testVerboseTimeoutWarnings,
-          warnings, result.getData().getTestProcessTimesList(), target)) {
-        summaryBuilder.setWasUnreportedWrongSize(true);
-      }
+    if (status == BlazeTestStatus.PASSED
+        && shouldEmitTestSizeWarningInSummary(
+            summaryOptions.testVerboseTimeoutWarnings,
+            warnings,
+            result.getData().getTestProcessTimesList(),
+            target)) {
+      summaryBuilder.setWasUnreportedWrongSize(true);
     }
 
     return summaryBuilder
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
index e168462..4418f1e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/HelpCommand.java
@@ -226,7 +226,7 @@
 
     for (String name : commands) {
       BlazeCommand command = commandsByName.get(name);
-      String varName = name.toUpperCase().replace("-", "_");
+      String varName = name.toUpperCase().replace('-', '_');
       Command annotation = command.getClass().getAnnotation(Command.class);
       if (!annotation.completion().isEmpty()) {
         outErr.printOutLn("BAZEL_COMMAND_" + varName + "_ARGUMENT=\""
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
index d1f18ce..1a0566b 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/InfoCommand.java
@@ -365,15 +365,13 @@
     AllowedRuleClassInfo.Builder info = AllowedRuleClassInfo.newBuilder();
     info.setPolicy(AllowedRuleClassInfo.AllowedRuleClasses.ANY);
 
-    if (attr.isStrictLabelCheckingEnabled()) {
-      if (attr.getAllowedRuleClassesPredicate() != Predicates.<RuleClass>alwaysTrue()) {
-        info.setPolicy(AllowedRuleClassInfo.AllowedRuleClasses.SPECIFIED);
-        Predicate<RuleClass> filter = attr.getAllowedRuleClassesPredicate();
-        for (RuleClass otherClass : Iterables.filter(
-            ruleClasses, filter)) {
-          if (otherClass.isDocumented()) {
-            info.addAllowedRuleClass(otherClass.getName());
-          }
+    if (attr.isStrictLabelCheckingEnabled()
+        && attr.getAllowedRuleClassesPredicate() != Predicates.<RuleClass>alwaysTrue()) {
+      info.setPolicy(AllowedRuleClassInfo.AllowedRuleClasses.SPECIFIED);
+      Predicate<RuleClass> filter = attr.getAllowedRuleClassesPredicate();
+      for (RuleClass otherClass : Iterables.filter(ruleClasses, filter)) {
+        if (otherClass.isDocumented()) {
+          info.addAllowedRuleClass(otherClass.getName());
         }
       }
     }
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 011ccbc..829f69e 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -108,7 +108,7 @@
     FileOutErr outErr = actionExecutionContext.getFileOutErr();
 
     // The execId is a unique ID just for this invocation of "exec".
-    String execId = uuid + "-" + Integer.toString(execCounter.getAndIncrement());
+    String execId = uuid + "-" + execCounter.getAndIncrement();
 
     // Each invocation of "exec" gets its own sandbox.
     Path sandboxPath =
@@ -216,7 +216,7 @@
       Path target = mount.getValue();
 
       // The source must exist.
-      Preconditions.checkArgument(source.exists(), source.toString() + " does not exist");
+      Preconditions.checkArgument(source.exists(), "%s does not exist", source.toString());
 
       // We cannot mount two different things onto the same target.
       if (!mounts.containsEntry(source, target) && mounts.containsValue(target)) {
diff --git a/src/main/java/com/google/devtools/build/lib/util/CPU.java b/src/main/java/com/google/devtools/build/lib/util/CPU.java
index 0bfce8a..51b126f 100644
--- a/src/main/java/com/google/devtools/build/lib/util/CPU.java
+++ b/src/main/java/com/google/devtools/build/lib/util/CPU.java
@@ -13,6 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.lib.util;
 
+import static com.google.common.base.StandardSystemProperty.OS_ARCH;
+
 import com.google.common.collect.ImmutableSet;
 
 import java.util.Set;
@@ -46,7 +48,7 @@
   }
 
   private static CPU determineCurrentCpu() {
-    String currentArch = System.getProperty("os.arch");
+    String currentArch = OS_ARCH.value();
 
     for (CPU cpu : CPU.values()) {
       if (cpu.archs.contains(currentArch)) {
diff --git a/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java b/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
index ae25c4f..13cb298 100644
--- a/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/util/CommandBuilder.java
@@ -14,6 +14,8 @@
 
 package com.google.devtools.build.lib.util;
 
+import static com.google.common.base.StandardSystemProperty.JAVA_IO_TMPDIR;
+
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.CharMatcher;
 import com.google.common.base.Joiner;
@@ -104,7 +106,7 @@
   }
 
   public CommandBuilder useTempDir() {
-    workingDir = new File(System.getProperty("java.io.tmpdir"));
+    workingDir = new File(JAVA_IO_TMPDIR.value());
     return this;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/util/StringUtil.java b/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
index b24742c..54fdd5f 100644
--- a/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/util/StringUtil.java
@@ -87,7 +87,7 @@
       // many concurrent submissions that touch the same files,
       // attempt to use a single reference for equal strings via the
       // deduplicator.
-      result.add(StringCanonicalizer.intern(new String(val)));
+      result.add(StringCanonicalizer.intern(val));
     }
     return result;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/util/UserUtils.java b/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
index 93e2a66..111002b 100644
--- a/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/util/UserUtils.java
@@ -14,6 +14,8 @@
 
 package com.google.devtools.build.lib.util;
 
+import static com.google.common.base.StandardSystemProperty.USER_NAME;
+
 import com.google.common.base.Strings;
 
 import java.util.Map;
@@ -30,7 +32,7 @@
   }
 
   private static class Holder {
-    static final String userName = System.getProperty("user.name");
+    static final String userName = USER_NAME.value();
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/ModifiedFileSet.java b/src/main/java/com/google/devtools/build/lib/vfs/ModifiedFileSet.java
index 3d6a638..319017e 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/ModifiedFileSet.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/ModifiedFileSet.java
@@ -63,7 +63,7 @@
 
   @Override
   public int hashCode() {
-    return Objects.hash(modified);
+    return Objects.hashCode(modified);
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java
index a6e37c4..8248e1c 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java
@@ -31,7 +31,7 @@
    */
   @Override
   public PooledObject<Worker> wrap(Worker worker) {
-    return new DefaultPooledObject<Worker>(worker);
+    return new DefaultPooledObject<>(worker);
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index 8fb7ef2..bfac250 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -75,8 +75,8 @@
     // persistent mode and then pass it the flagfile via a WorkRequest to make it actually do the
     // work.
     if (!Iterables.getLast(spawn.getArguments()).startsWith("@")) {
-      Preconditions.checkState(
-          false, "Must have parameter file as last arg, got args: " + spawn.getArguments());
+      throw new IllegalStateException(
+          "Must have parameter file as last arg, got args: " + spawn.getArguments());
     }
 
     FileOutErr outErr = actionExecutionContext.getFileOutErr();