From 3e9ca7e85460b7230c68391e4b62d4c7360d94cf Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Thu, 19 Nov 2015 08:58:12 -0500 Subject: [PATCH] Include full sub-messages of CommitValidationExceptions Change-Id: I2b36af02c903c3177c491e9793756f9c153e5c18 --- .../gerrit/server/change/ChangeInserter.java | 2 +- .../gerrit/server/change/PatchSetInserter.java | 2 +- .../git/validators/CommitValidationException.java | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java index 90d6aae431..83ccf3c195 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java @@ -339,7 +339,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp { break; } } catch (CommitValidationException e) { - throw new InvalidChangeOperationException(e.getMessage()); + throw new InvalidChangeOperationException(e.getFullMessage()); } } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java index efe31e3d57..9a658a9859 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java @@ -330,7 +330,7 @@ public class PatchSetInserter extends BatchUpdate.Op { break; } } catch (CommitValidationException e) { - throw new ResourceConflictException(e.getMessage()); + throw new ResourceConflictException(e.getFullMessage()); } } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidationException.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidationException.java index 029096e8f9..91c6a143d4 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidationException.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidationException.java @@ -23,7 +23,8 @@ public class CommitValidationException extends ValidationException { private static final long serialVersionUID = 1L; private final List messages; - public CommitValidationException(String reason, List messages) { + public CommitValidationException(String reason, + List messages) { super(reason); this.messages = messages; } @@ -41,4 +42,16 @@ public class CommitValidationException extends ValidationException { public List getMessages() { return messages; } + + /** @return the reason string along with all validation messages. */ + public String getFullMessage() { + StringBuilder sb = new StringBuilder(getMessage()); + if (!messages.isEmpty()) { + sb.append(':'); + for (CommitValidationMessage msg : messages) { + sb.append("\n ").append(msg.getMessage()); + } + } + return sb.toString(); + } }