From 7ad42d741645f19473839b2cbcb4035adb61b9b8 Mon Sep 17 00:00:00 2001 From: Masaya Suzuki Date: Tue, 24 Mar 2020 11:50:34 -0700 Subject: [PATCH] ReceivePack: Use error message if set ReceiveCommand can have an error message. This is shown only for some cases even if it's set. This change uses the error message if it's set, and fallback to the default message if unset. Change-Id: I8d906e71ad08cf49bcdb28caea8fcc66798c68ff Signed-off-by: Masaya Suzuki --- .../eclipse/jgit/transport/ReceivePack.java | 76 ++++++++++--------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java index ec2b76938..8a8c1ae0b 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java @@ -1814,55 +1814,59 @@ void sendString(String s) throws IOException { .append(" ("); //$NON-NLS-1$ } - switch (cmd.getResult()) { - case NOT_ATTEMPTED: - r.append("server bug; ref not processed"); //$NON-NLS-1$ - break; - - case REJECTED_NOCREATE: - r.append("creation prohibited"); //$NON-NLS-1$ - break; - - case REJECTED_NODELETE: - r.append("deletion prohibited"); //$NON-NLS-1$ - break; - - case REJECTED_NONFASTFORWARD: - r.append("non-fast forward"); //$NON-NLS-1$ - break; - - case REJECTED_CURRENT_BRANCH: - r.append("branch is currently checked out"); //$NON-NLS-1$ - break; - - case REJECTED_MISSING_OBJECT: + if (cmd.getResult() == Result.REJECTED_MISSING_OBJECT) { if (cmd.getMessage() == null) r.append("missing object(s)"); //$NON-NLS-1$ else if (cmd.getMessage() .length() == Constants.OBJECT_ID_STRING_LENGTH) { + // TODO: Using get/setMessage to store an OID is a + // misuse. The caller should set a full error message. r.append("object "); //$NON-NLS-1$ r.append(cmd.getMessage()); r.append(" missing"); //$NON-NLS-1$ - } else + } else { r.append(cmd.getMessage()); - break; + } + } else if (cmd.getMessage() != null) { + r.append(cmd.getMessage()); + } else { + switch (cmd.getResult()) { + case NOT_ATTEMPTED: + r.append("server bug; ref not processed"); //$NON-NLS-1$ + break; - case REJECTED_OTHER_REASON: - if (cmd.getMessage() == null) + case REJECTED_NOCREATE: + r.append("creation prohibited"); //$NON-NLS-1$ + break; + + case REJECTED_NODELETE: + r.append("deletion prohibited"); //$NON-NLS-1$ + break; + + case REJECTED_NONFASTFORWARD: + r.append("non-fast forward"); //$NON-NLS-1$ + break; + + case REJECTED_CURRENT_BRANCH: + r.append("branch is currently checked out"); //$NON-NLS-1$ + break; + + case REJECTED_OTHER_REASON: r.append("unspecified reason"); //$NON-NLS-1$ - else - r.append(cmd.getMessage()); - break; + break; - case LOCK_FAILURE: - r.append("failed to lock"); //$NON-NLS-1$ - break; + case LOCK_FAILURE: + r.append("failed to lock"); //$NON-NLS-1$ + break; - case OK: - // We shouldn't have reached this case (see 'ok' case - // above). - continue; + case REJECTED_MISSING_OBJECT: + case OK: + // We shouldn't have reached this case (see 'ok' case + // above and if-statement above). + throw new AssertionError(); + } } + if (!reportStatus) { r.append(")"); //$NON-NLS-1$ }