diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
index 5beb1c2..8b06a24 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
@@ -106,9 +106,9 @@
 
       ps = pb.start();
       ps.getOutputStream().close();
-      String output = new String(ByteStreams.toByteArray(ps.getInputStream()), UTF_8);
+      String out = new String(ByteStreams.toByteArray(ps.getInputStream()), UTF_8);
       ps.waitFor();
-      result = new HookResult(ps.exitValue(), output);
+      result = new HookResult(ps.exitValue(), out);
     } catch (InterruptedException iex) {
       // InterruptedException - timeout or cancel
       args.metrics.timeout(name);
@@ -125,12 +125,10 @@
       }
 
       if (logger.atFine().isEnabled()) {
-        BufferedReader br = new BufferedReader(new StringReader(result.getOutput()));
-        try {
-          String line;
-          while ((line = br.readLine()) != null) {
-            logger.atFine().log("hook[%s] output: %s", name, line);
-          }
+        try (BufferedReader br = new BufferedReader(new StringReader(result.getOutput()))) {
+          br.lines()
+              .filter(s -> !s.isEmpty())
+              .forEach(line -> logger.atFine().log("hook[%s] output: %s", name, line));
         } catch (IOException iox) {
           logger.atSevere().withCause(iox).log("Error writing hook [%s] output", name);
         }
