diff options
author | Eryk Szymanski <eryksz@gmail.com> | 2020-01-10 12:14:17 +0100 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2020-01-30 10:02:48 +0900 |
commit | 8bf1d9985415d2f7a5b5c5c2cd9c90d2a31902d9 (patch) | |
tree | c751635015bbcba1acd412de9bacf0092d44954a | |
parent | 927e4908e26149279ab5e3788c11245300523adc (diff) |
Improve log if VersionedMetaData fails to update
In case of lock failure there is no hint on what commit has caused it.
This change adds ref log message, which is "commit:" + subject line
of commit message or "commit: meta data update" in case of no commit
message, to the exception message.
Also extract the exception message creation to a separate method, so
that the same info is available when update fails for other reasons.
Change-Id: I5686e079853807ba88dae6d8ccf184eb81b50013
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java index d1e3381907..8f5e7a2bc8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java @@ -16,6 +16,7 @@ package com.google.gerrit.server.git; import com.google.common.base.MoreObjects; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; @@ -389,14 +390,7 @@ public abstract class VersionedMetaData { update.fireGitRefUpdatedEvent(ru); return revision; case LOCK_FAILURE: - throw new LockFailureException( - "Cannot update " - + ru.getName() - + " in " - + db.getDirectory() - + ": " - + ru.getResult(), - ru); + throw new LockFailureException(errorMsg(ru, db.getDirectory()), ru); case FORCED: case IO_FAILURE: case NOT_ATTEMPTED: @@ -407,15 +401,15 @@ public abstract class VersionedMetaData { case REJECTED_MISSING_OBJECT: case REJECTED_OTHER_REASON: default: - throw new IOException( - "Cannot update " - + ru.getName() - + " in " - + db.getDirectory() - + ": " - + ru.getResult()); + throw new IOException(errorMsg(ru, db.getDirectory())); } } + + private String errorMsg(RefUpdate ru, File location) { + return String.format( + "Cannot update %s in %s: %s (%s)", + ru.getName(), location, ru.getResult(), ru.getRefLogMessage()); + } }; } |