Merge branch 'stable-2.15' * stable-2.15: [HookTask] Avoid shadowing field [HookTask] Close readers in try-with-resources Change-Id: I0b5f325cf08b025a1f97143d13fdbf7b6b5bae62
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java index b03a77b..74a0817 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
@@ -51,7 +51,7 @@ args.add("--project", projectName); args.add("--refname", refname); args.add("--uploader", receiveEvent.user.getNameEmail()); - args.add("--uploader-username", receiveEvent.user.getUserName()); + args.add("--uploader-username", receiveEvent.user.getUserName().orElse(null)); args.add("--oldrev", old.name()); args.add("--newrev", receiveEvent.commit.name()); args.add("--cmdref", commandRef);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java index 42d4e75..bd56c3e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookExecutor.java
@@ -1,5 +1,6 @@ package com.googlesource.gerrit.plugins.hooks; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.server.config.GerritServerConfig; @@ -13,16 +14,15 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import org.eclipse.jgit.lib.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class HookExecutor implements LifecycleListener { - private static final Logger log = LoggerFactory.getLogger(HookExecutor.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); + private static final UncaughtExceptionHandler LOG_UNCAUGHT_EXCEPTION = new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { - log.error("HookExecutor thread {} threw exception", t.getName(), e); + logger.atSevere().withCause(e).log("HookExecutor thread %s threw exception", t.getName()); } }; @@ -46,7 +46,7 @@ HookResult submit(String projectName, Path hook, HookArgs args) { if (!Files.exists(hook)) { - log.debug("Hook file not found: {}", hook); + logger.atFine().log("Hook file not found: %s", hook); return null; } HookTask.Sync hookTask = new HookTask.Sync(projectName, hook, args); @@ -58,10 +58,10 @@ return task.get(timeout, TimeUnit.SECONDS); } catch (TimeoutException e) { message = "Synchronous hook timed out " + hook; - log.error(message); + logger.atSevere().log(message); } catch (Exception e) { message = "Error running hook " + hook; - log.error(message, e); + logger.atSevere().withCause(e).log(message); } task.cancel(true); hookTask.cancel();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java index f3d8293..afd189d 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
@@ -16,6 +16,7 @@ import static com.google.common.base.MoreObjects.firstNonNull; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; import com.google.inject.Inject; @@ -23,12 +24,10 @@ import java.nio.file.Path; import java.nio.file.Paths; import org.eclipse.jgit.lib.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class HookFactory { - private static final Logger log = LoggerFactory.getLogger(HookFactory.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final HookQueue queue; private final HookExecutor syncHookExecutor; @@ -54,13 +53,13 @@ } else { this.hooksPath = sitePaths.hooks_dir; } - log.info("hooks.path: {}", this.hooksPath); + logger.atInfo().log("hooks.path: %s", this.hooksPath); } private Path getHookPath(String configName, String defaultName) { String v = config.getString("hooks", null, configName); Path hookPath = hooksPath.resolve(firstNonNull(v, defaultName)); - log.info("hooks.{} resolved to {}", configName, hookPath); + logger.atInfo().log("hooks.%s resolved to %s", configName, hookPath); return hookPath; }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java index 1b2a307..88ae311 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookQueue.java
@@ -14,17 +14,16 @@ package com.googlesource.gerrit.plugins.hooks; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.server.git.WorkQueue; import com.google.inject.Inject; import java.nio.file.Files; import java.nio.file.Path; import java.util.concurrent.ScheduledExecutorService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; class HookQueue implements LifecycleListener { - private static final Logger log = LoggerFactory.getLogger(HookQueue.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final WorkQueue workQueue; @@ -41,7 +40,7 @@ void submit(String projectName, Path hook, HookArgs args) { if (!Files.exists(hook)) { - log.debug("Hook file not found: {}", hook.toAbsolutePath()); + logger.atFine().log("Hook file not found: %s", hook.toAbsolutePath()); return; } queue.submit(new HookTask.Async(projectName, hook, args));
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 b6654da..8b06a24 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookTask.java
@@ -16,6 +16,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; +import com.google.common.flogger.FluentLogger; import com.google.common.io.ByteStreams; import com.google.gerrit.metrics.Timer1; import com.google.gerrit.reviewdb.client.Project; @@ -29,11 +30,9 @@ import java.util.Map; import java.util.concurrent.Callable; import org.eclipse.jgit.lib.Repository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; class HookTask { - private static final Logger log = LoggerFactory.getLogger(HookTask.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final Path sitePath; private final String projectName; @@ -113,25 +112,25 @@ } catch (InterruptedException iex) { // InterruptedException - timeout or cancel args.metrics.timeout(name); - log.error("hook[{}] timed out: {}", name, iex.getMessage()); + logger.atSevere().log("hook[%s] timed out: %s", name, iex.getMessage()); } catch (Throwable err) { args.metrics.error(name); - log.error("Error running hook {}", hook.toAbsolutePath(), err); + logger.atSevere().withCause(err).log("Error running hook %s", hook.toAbsolutePath()); } if (result != null) { int exitValue = result.getExitValue(); if (exitValue != 0) { - log.error("hook[{}] exited with error status: {}", name, exitValue); + logger.atSevere().log("hook[%s] exited with error status: %d", name, exitValue); } - if (log.isDebugEnabled()) { + if (logger.atFine().isEnabled()) { try (BufferedReader br = new BufferedReader(new StringReader(result.getOutput()))) { br.lines() .filter(s -> !s.isEmpty()) - .forEach(line -> log.debug("hook[{}] output: {}", name, line)); + .forEach(line -> logger.atFine().log("hook[%s] output: %s", name, line)); } catch (IOException iox) { - log.error("Error writing hook [{}] output", name, iox); + logger.atSevere().withCause(iox).log("Error writing hook [%s] output", name); } } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java index 7eedfa5..90a1b93 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/RefUpdate.java
@@ -49,7 +49,7 @@ HookArgs args = hookFactory.createArgs(); args.add("--project", projectName); args.add("--uploader", refEvent.user.getNameEmail()); - args.add("--uploader-username", refEvent.user.getUserName()); + args.add("--uploader-username", refEvent.user.getUserName().orElse(null)); args.add("--oldrev", getObjectId(refEvent.command.getOldId()).getName()); args.add("--newrev", getObjectId(refEvent.command.getNewId()).getName()); args.add("--refname", refEvent.command.getRefName());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java index 8e2f1e0..7474553 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/Submit.java
@@ -51,7 +51,7 @@ args.add("--project", projectName); args.add("--branch", destBranch.get()); args.add("--submitter", caller.getNameEmail()); - args.add("--submitter-username", caller.getUserName()); + args.add("--submitter-username", caller.getUserName().get()); args.add("--patchset", patchSetId.get()); args.add("--commit", commit.getId().name());