diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersValidator.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersValidator.java
index 225cbd6..8d81574 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersValidator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersValidator.java
@@ -139,8 +139,7 @@
       if (isActive(cfg)) {
         try (Repository repo = repoManager.openRepository(project)) {
           String name = getOwnersFileName(project);
-          messages =
-              performValidation(receiveEvent.commit, receiveEvent.revWalk, name, false);
+          messages = performValidation(receiveEvent.commit, receiveEvent.revWalk, name, false);
         }
       }
     } catch (NoSuchProjectException | IOException | ExecutionException e) {
@@ -316,8 +315,8 @@
    * Find all TreeWalk entries which differ between the commit and its parents. If a TreeWalk entry
    * is found this method calls the onVisit() method of the class TreeWalkVisitor.
    */
-  private static void visitChangedEntries(
-      RevCommit c, RevWalk revWalk, TreeWalkVisitor visitor) throws IOException {
+  private static void visitChangedEntries(RevCommit c, RevWalk revWalk, TreeWalkVisitor visitor)
+      throws IOException {
     try (TreeWalk tw = new TreeWalk(revWalk.getObjectReader())) {
       tw.setRecursive(true);
       tw.setFilter(TreeFilter.ANY_DIFF);
diff --git a/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorTest.java b/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorTest.java
index 7f1c39a..68e8b3d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/findowners/OwnersValidatorTest.java
@@ -258,8 +258,7 @@
     MockedEmails myEmails = new MockedEmails();
     OwnersValidator validator = new OwnersValidator(null, null, null, myEmails);
     String ownersFileName = OwnersValidator.getOwnersFileName(cfg);
-    List<CommitValidationMessage> m =
-        validator.performValidation(c, rw, ownersFileName, verbose);
+    List<CommitValidationMessage> m = validator.performValidation(c, rw, ownersFileName, verbose);
     return transformMessages(m);
   }
 
