Merge "Upgrade bazlets to latest stable-2.15 to build with 2.15.10 API" into stable-2.15
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..40e022d
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,126 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.processAnnotations=enabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/src/main/java/com/google/gerrit/server/git/meta/GitFile.java b/src/main/java/com/google/gerrit/server/git/meta/GitFile.java
index 0ff7aa1..beca5b3 100644
--- a/src/main/java/com/google/gerrit/server/git/meta/GitFile.java
+++ b/src/main/java/com/google/gerrit/server/git/meta/GitFile.java
@@ -16,6 +16,7 @@
 
 import com.google.gerrit.reviewdb.client.Branch;
 import com.google.gerrit.reviewdb.client.File;
+import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.gerrit.server.git.MetaDataUpdate;
 import com.google.gerrit.server.git.VersionedMetaData;
@@ -24,6 +25,7 @@
 import com.google.inject.assistedinject.Assisted;
 import java.io.IOException;
 import org.eclipse.jgit.errors.ConfigInvalidException;
+import org.eclipse.jgit.errors.RepositoryNotFoundException;
 import org.eclipse.jgit.lib.CommitBuilder;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -54,20 +56,26 @@
   }
 
   public String read() throws ConfigInvalidException, IOException, NoSuchProjectException {
-    try (Repository repo = repos.openRepository(branch.getParentKey())) {
+    Project.NameKey project = branch.getParentKey();
+    try (Repository repo = repos.openRepository(project)) {
       load(repo);
       return text;
+    } catch (RepositoryNotFoundException e) {
+      throw new NoSuchProjectException(project);
     }
   }
 
   public RevCommit write(String fileContent, String commitMessage)
       throws ConfigInvalidException, IOException, NoSuchProjectException {
-    try (MetaDataUpdate md = metaDataUpdateFactory.create(branch.getParentKey())) {
+    Project.NameKey project = branch.getParentKey();
+    try (MetaDataUpdate md = metaDataUpdateFactory.create(project)) {
       load(md);
       text = fileContent;
       md.getCommitBuilder().setCommitter(metaDataUpdateFactory.getUserPersonIdent());
       md.setMessage(commitMessage);
       return commit(md);
+    } catch (RepositoryNotFoundException e) {
+      throw new NoSuchProjectException(project);
     }
   }
 
diff --git a/src/main/java/com/google/gerrit/server/util/RefUpdater.java b/src/main/java/com/google/gerrit/server/util/RefUpdater.java
index 3c74202..c2c700d 100644
--- a/src/main/java/com/google/gerrit/server/util/RefUpdater.java
+++ b/src/main/java/com/google/gerrit/server/util/RefUpdater.java
@@ -128,7 +128,7 @@
     protected Project.NameKey project;
     protected boolean delete;
 
-    protected Update(Args args) throws IOException {
+    protected Update(Args args) {
       this.args = args;
       branch = args.branch;
       project = branch.getParentKey();
@@ -177,11 +177,20 @@
           if (!delete && !args.isForceUpdate) {
             throw new IOException(result.name());
           }
+          // $FALL-THROUGH$
         case FAST_FORWARD:
         case NEW:
         case NO_CHANGE:
           onUpdated(update, args);
           break;
+        case IO_FAILURE:
+        case LOCK_FAILURE:
+        case NOT_ATTEMPTED:
+        case REJECTED:
+        case REJECTED_CURRENT_BRANCH:
+        case REJECTED_MISSING_OBJECT:
+        case REJECTED_OTHER_REASON:
+        case RENAMED:
         default:
           throw new IOException(result.name());
       }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/Batch.java b/src/main/java/com/googlesource/gerrit/plugins/batch/Batch.java
index 413e724..79c1d36 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/Batch.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/Batch.java
@@ -53,7 +53,7 @@
 
     public void add(PatchSet.Id psId) {
       if (changes == null) {
-        changes = new ArrayList<Change>();
+        changes = new ArrayList<>();
       }
       changes.add(new Batch.Change(psId));
     }
@@ -88,7 +88,7 @@
 
   public Destination getDestination(Branch.NameKey branch) {
     if (destinations == null) {
-      destinations = new ArrayList<Destination>();
+      destinations = new ArrayList<>();
     }
     Destination dest = getExistingDestination(branch);
     if (dest == null) {
@@ -102,7 +102,7 @@
 
   protected Destination getExistingDestination(Branch.NameKey branch) {
     if (destinations == null) {
-      destinations = new ArrayList<Destination>();
+      destinations = new ArrayList<>();
     }
     for (Destination dest : destinations) {
       if (dest.project.equals(branch.getParentKey().get()) && dest.ref.equals(branch.get())) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/BatchCleaner.java b/src/main/java/com/googlesource/gerrit/plugins/batch/BatchCleaner.java
index fe5c795..b099fa6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/BatchCleaner.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/BatchCleaner.java
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.git.WorkQueue;
 import com.google.gerrit.server.git.WorkQueue.CancelableRunnable;
-import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.gerrit.server.project.ProjectCache;
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -57,8 +56,7 @@
         WorkQueue workQueue,
         BatchCleaner cleaner,
         ProjectCache projectCache,
-        @PluginName String pluginName)
-        throws NoSuchProjectException {
+        @PluginName String pluginName) {
       this.cfgFactory = cfgFactory;
       this.workQueue = workQueue;
       this.cleaner = cleaner;
@@ -81,13 +79,13 @@
       cleaner.cancel();
     }
 
-    protected long startDelay() throws NoSuchProjectException {
+    protected long startDelay() {
       Config config = cfgFactory.getProjectPluginConfig(projectCache.getAllProjects(), pluginName);
       return ConfigUtil.getTimeUnit(
           config, "cleaner", null, "startDelay", DEFAULT_START_MINUTES, MINUTES);
     }
 
-    protected long interval() throws NoSuchProjectException {
+    protected long interval() {
       Config config = cfgFactory.getProjectPluginConfig(projectCache.getAllProjects(), pluginName);
       String freq = config.getString("cleaner", null, "interval");
       if (freq != null && ("disabled".equalsIgnoreCase(freq) || "off".equalsIgnoreCase(freq))) {
@@ -111,7 +109,7 @@
     this.list = list;
 
     this.userProvider = userProvider;
-    list.query = new ArrayList<String>();
+    list.query = new ArrayList<>();
     list.query.add("is:expired");
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/BatchStore.java b/src/main/java/com/googlesource/gerrit/plugins/batch/BatchStore.java
index e2f89cd..6d693df 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/BatchStore.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/BatchStore.java
@@ -102,6 +102,7 @@
     } catch (ConfigInvalidException e) { // Not real, never going to be thrown
       throw new RuntimeException(e);
     } catch (NoSuchProjectException e) {
+      // Fall through
     }
     throw new NoSuchBatchException(id);
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/ListBatches.java b/src/main/java/com/googlesource/gerrit/plugins/batch/ListBatches.java
index 778d72f..b997d75 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/ListBatches.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/ListBatches.java
@@ -82,7 +82,7 @@
       pred = queryBuilder.parse(Joiner.on(" ").join(query));
       includeBatchInfo = true;
     }
-    List<Batch> batches = new ArrayList<Batch>();
+    List<Batch> batches = new ArrayList<>();
     for (Batch batch : store.find(includeBatchInfo)) {
       if (pred == null || pred.asMatchable().match(batch)) {
         batches.add(batch);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/cli/FastForwardOptions.java b/src/main/java/com/googlesource/gerrit/plugins/batch/cli/FastForwardOptions.java
index 3c8c5f9..7f034d7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/cli/FastForwardOptions.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/cli/FastForwardOptions.java
@@ -38,8 +38,7 @@
 
   public FastForwardMode getFastForwardMode() throws UnloggedFailure {
     if (selected == null) {
-      EnumMap<FastForwardMode, Boolean> valuesByMode =
-          new EnumMap<FastForwardMode, Boolean>(FastForwardMode.class);
+      EnumMap<FastForwardMode, Boolean> valuesByMode = new EnumMap<>(FastForwardMode.class);
       valuesByMode.put(FastForwardMode.FF, ff);
       valuesByMode.put(FastForwardMode.NO_FF, noff);
       valuesByMode.put(FastForwardMode.FF_ONLY, ffOnly);
@@ -62,7 +61,7 @@
   }
 
   protected static Set<String> toStrings(EnumSet<FastForwardMode> modes) {
-    Set<String> out = new HashSet<String>();
+    Set<String> out = new HashSet<>();
     for (FastForwardMode mode : modes) {
       out.add(mode.getName());
     }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/cli/PatchSetArgument.java b/src/main/java/com/googlesource/gerrit/plugins/batch/cli/PatchSetArgument.java
index d20a226..da157f8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/cli/PatchSetArgument.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/cli/PatchSetArgument.java
@@ -69,7 +69,7 @@
       }
     }
 
-    protected PatchSet.Id parsePatchSet(String patchIdentity) throws UnloggedFailure, OrmException {
+    protected PatchSet.Id parsePatchSet(String patchIdentity) throws UnloggedFailure {
       // By older style change,patchset
       if (patchIdentity.matches("^[1-9][0-9]*,[1-9][0-9]*$")) {
         try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/query/BatchQueryBuilder.java b/src/main/java/com/googlesource/gerrit/plugins/batch/query/BatchQueryBuilder.java
index 53f1b6f..160fde6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/query/BatchQueryBuilder.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/query/BatchQueryBuilder.java
@@ -22,7 +22,6 @@
 import com.google.gerrit.index.query.QueryParseException;
 import com.google.gerrit.server.config.ConfigUtil;
 import com.google.gerrit.server.config.PluginConfigFactory;
-import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.gerrit.server.project.ProjectCache;
 import com.google.inject.Inject;
 import com.googlesource.gerrit.plugins.batch.Batch;
@@ -51,7 +50,7 @@
   }
 
   protected static final QueryBuilder.Definition<Batch, BatchQueryBuilder> mydef =
-      new QueryBuilder.Definition<Batch, BatchQueryBuilder>(BatchQueryBuilder.class);
+      new QueryBuilder.Definition<>(BatchQueryBuilder.class);
 
   public static final long DEFAULT_SECONDS = TimeUnit.SECONDS.convert(3, TimeUnit.DAYS);
 
@@ -73,7 +72,7 @@
     this.pluginName = pluginName;
   }
 
-  public Date getExpiry() throws NoSuchProjectException {
+  public Date getExpiry() {
     Config config = cfgFactory.getProjectPluginConfig(projectCache.getAllProjects(), pluginName);
     long seconds =
         ConfigUtil.getTimeUnit(
@@ -83,7 +82,7 @@
   }
 
   @Operator
-  public Predicate<Batch> is(String value) throws NoSuchProjectException, QueryParseException {
+  public Predicate<Batch> is(String value) throws QueryParseException {
     if ("expired".equalsIgnoreCase(value)) {
       return new SimplePredicate("is", value) {
         Date expiry = getExpiry();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/ListCommand.java b/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/ListCommand.java
index f615ae3..8adf607 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/ListCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/ListCommand.java
@@ -39,6 +39,7 @@
             parseCommandLine(impl);
             impl.display(out);
           }
-        }, AccessPath.SSH_COMMAND);
+        },
+        AccessPath.SSH_COMMAND);
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/MergeChangeCommand.java b/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/MergeChangeCommand.java
index a18b35b..444b148 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/MergeChangeCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/ssh/MergeChangeCommand.java
@@ -25,7 +25,6 @@
 import com.google.gerrit.sshd.CommandMetaData;
 import com.google.gerrit.sshd.SshCommand;
 import com.google.gerrit.util.cli.Options;
-import com.google.gwtorm.server.OrmException;
 import com.google.inject.Inject;
 import com.googlesource.gerrit.plugins.batch.Batch;
 import com.googlesource.gerrit.plugins.batch.BatchCloser;
@@ -69,7 +68,7 @@
   public boolean close;
 
   protected LinkedHashMap<PatchSet.Id, PatchSetArgument> patchSetArgumentsByPatchSet =
-      new LinkedHashMap<PatchSet.Id, PatchSetArgument>();
+      new LinkedHashMap<>();
 
   @Argument(
       index = 0,
@@ -89,8 +88,7 @@
   @Inject protected ReviewDb db;
   @Inject protected IdentifiedUser user;
   @Inject protected GitRepositoryManager repoManager;
-  protected Map<PatchSet.Id, List<ObjectId>> parentsByPsarg =
-      new HashMap<PatchSet.Id, List<ObjectId>>();
+  protected Map<PatchSet.Id, List<ObjectId>> parentsByPsarg = new HashMap<>();
 
   @Override
   public void run() throws Exception {
@@ -120,7 +118,7 @@
   }
 
   protected boolean isParentMergedInto(PatchSetArgument psarg, Iterable<ObjectId> sha1s)
-      throws IOException, OrmException, RepositoryNotFoundException {
+      throws IOException, RepositoryNotFoundException {
     for (ObjectId sha1 : sha1s) {
       if (isParentMergedInto(psarg, sha1)) {
         return true;
@@ -130,7 +128,7 @@
   }
 
   protected boolean isParentMergedInto(PatchSetArgument psarg, ObjectId sha1)
-      throws IOException, OrmException, RepositoryNotFoundException {
+      throws IOException, RepositoryNotFoundException {
     List<ObjectId> parents = getParents(psarg);
     if (parents.isEmpty()) {
       return true;
@@ -164,7 +162,7 @@
   }
 
   protected void merge(Batch batch, Change change, PatchSet ps)
-      throws Exception, IOException, NoSuchRefException, OrmException, UnloggedFailure {
+      throws Exception, IOException, NoSuchRefException, UnloggedFailure {
     Branch.NameKey branch = change.getDest();
     Batch.Destination dest = batch.getDestination(branch);
     dest.sha1 =
@@ -200,21 +198,19 @@
     }
 
     protected class Destination {
-      List<PatchSetArgument> remaining = new ArrayList<PatchSetArgument>();
-      Set<ObjectId> sources = new HashSet<ObjectId>();
+      List<PatchSetArgument> remaining = new ArrayList<>();
+      Set<ObjectId> sources = new HashSet<>();
 
       Destination(Branch.NameKey branch) throws IOException, NoSuchRefException {
         sources.add(getTip(branch));
       }
     }
 
-    protected Map<Branch.NameKey, Destination> destinationsByBranches =
-        new HashMap<Branch.NameKey, Destination>();
-    protected List<PatchSetArgument> resolved = new ArrayList<PatchSetArgument>();
+    protected Map<Branch.NameKey, Destination> destinationsByBranches = new HashMap<>();
+    protected List<PatchSetArgument> resolved = new ArrayList<>();
 
     protected Resolver(Iterable<PatchSetArgument> psargs)
-        throws Exception, IOException, OrmException, NoSuchRefException,
-            RepositoryNotFoundException {
+        throws Exception, IOException, NoSuchRefException, RepositoryNotFoundException {
       add(psargs);
       while (resolve()) {}
       for (Destination dest : destinationsByBranches.values()) {
@@ -225,8 +221,7 @@
       Collections.reverse(resolved); // Reduces merges
     }
 
-    protected boolean resolve()
-        throws IOException, OrmException, NoSuchRefException, RepositoryNotFoundException {
+    protected boolean resolve() throws IOException, RepositoryNotFoundException {
       boolean found = false;
       for (Destination dest : destinationsByBranches.values()) {
         // If more dependencies are destined for the same branch than not,
@@ -239,8 +234,7 @@
       return found;
     }
 
-    protected boolean resolve(Destination dest)
-        throws IOException, OrmException, NoSuchRefException, RepositoryNotFoundException {
+    protected boolean resolve(Destination dest) throws IOException, RepositoryNotFoundException {
       boolean found = false;
       for (PatchSetArgument psarg : dest.remaining) {
         if (isParentMergedInto(psarg, dest.sources)) {
@@ -288,7 +282,7 @@
   protected List<ObjectId> loadParents(PatchSetArgument psarg) throws IOException {
     try (Repository repo = repoManager.openRepository(psarg.change.getProject());
         RevWalk revWalk = new RevWalk(repo)) {
-      List<ObjectId> parents = new ArrayList<ObjectId>();
+      List<ObjectId> parents = new ArrayList<>();
       ObjectId id = ObjectId.fromString(psarg.patchSet.getRevision().get());
       RevCommit c = revWalk.parseCommit(id);
       for (RevCommit parent : c.getParents()) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBranch.java b/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBranch.java
index 7ef6cdb..c766351 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBranch.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBranch.java
@@ -115,9 +115,8 @@
       Project project = projectFromName(projectName);
       if (project != null && project.getUseContentMerge() == InheritableBoolean.TRUE) {
         return MergeStrategy.RESOLVE;
-      } else {
-        return MergeStrategy.SIMPLE_TWO_WAY_IN_CORE;
       }
+      return MergeStrategy.SIMPLE_TWO_WAY_IN_CORE;
     }
     return strategy;
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBuilder.java b/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBuilder.java
index 28e583f..6e5c4a8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBuilder.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBuilder.java
@@ -158,9 +158,8 @@
   protected ThreeWayMerger getMerger(Repository repo) {
     if (strategy == MergeStrategy.RESOLVE) {
       return MergeStrategy.RESOLVE.newMerger(repo, true);
-    } else {
-      return MergeStrategy.SIMPLE_TWO_WAY_IN_CORE.newMerger(repo);
     }
+    return MergeStrategy.SIMPLE_TWO_WAY_IN_CORE.newMerger(repo);
   }
 
   protected CommitBuilder buildCommit(Merger merger) {