From 4495ff757818e2a5c2a556ab2e6a0c3d36bbbc11 Mon Sep 17 00:00:00 2001
From: David Ostrovsky <david@ostrovsky.org>
Date: Thu, 10 Apr 2014 18:58:09 -0400
Subject: [PATCH] Report identified user and command on command failure

---
 src/main/java/com/gitblit/transport/ssh/commands/BaseCommand.java |   30 +++++++++++-------------------
 1 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/gitblit/transport/ssh/commands/BaseCommand.java b/src/main/java/com/gitblit/transport/ssh/commands/BaseCommand.java
index 4162a40..c4d6a57 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/BaseCommand.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/BaseCommand.java
@@ -232,7 +232,7 @@
 		public void cancel() {
 			synchronized (this) {
 				try {
-					// onExit(/*STATUS_CANCEL*/);
+					onExit(STATUS_CANCEL);
 				} finally {
 					ctx = null;
 				}
@@ -317,18 +317,12 @@
 	/**
 	 * Terminate this command and return a result code to the remote client.
 	 * <p>
-	 * Commands should invoke this at most once. Once invoked, the command may
-	 * lose access to request based resources as any callbacks previously
-	 * registered with {@link RequestCleanup} will fire.
+	 * Commands should invoke this at most once.
 	 *
-	 * @param rc
-	 *            exit code for the remote client.
+	 * @param rc exit code for the remote client.
 	 */
 	protected void onExit(final int rc) {
 		exit.onExit(rc);
-		// if (cleanup != null) {
-		// cleanup.run();
-		// }
 	}
 
 	private int handleError(final Throwable e) {
@@ -346,16 +340,14 @@
 		} else {
 			final StringBuilder m = new StringBuilder();
 			m.append("Internal server error");
-			// if (userProvider.get().isIdentifiedUser()) {
-			// final IdentifiedUser u = (IdentifiedUser) userProvider.get();
-			// m.append(" (user ");
-			// m.append(u.getAccount().getUserName());
-			// m.append(" account ");
-			// m.append(u.getAccountId());
-			// m.append(")");
-			// }
-			// m.append(" during ");
-			// m.append(contextProvider.get().getCommandLine());
+			String user = ctx.getClient().getUsername();
+			if (user != null) {
+				m.append(" (user ");
+				m.append(user);
+				m.append(")");
+			}
+			m.append(" during ");
+			m.append(ctx.getCommandLine());
 			log.error(m.toString(), e);
 		}
 

--
Gitblit v1.9.1