From 30f9d25d77ccb5cd978d4cf8fa389ec819e90e95 Mon Sep 17 00:00:00 2001
From: Philip L. McMahon <philip.l.mcmahon@gmail.com>
Date: Fri, 27 Jan 2012 02:02:19 -0500
Subject: [PATCH] Correct update of HEAD symbolic reference when target is a tag.

---
 src/com/gitblit/IStoredSettings.java |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/IStoredSettings.java b/src/com/gitblit/IStoredSettings.java
index 0cc4bb4..2d8b605 100644
--- a/src/com/gitblit/IStoredSettings.java
+++ b/src/com/gitblit/IStoredSettings.java
@@ -17,6 +17,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.slf4j.Logger;
@@ -86,7 +87,7 @@
 		if (props.containsKey(name)) {
 			String value = props.getProperty(name);
 			if (!StringUtils.isEmpty(value)) {
-				return Boolean.parseBoolean(value);
+				return Boolean.parseBoolean(value.trim());
 			}
 		}
 		return defaultValue;
@@ -107,7 +108,7 @@
 			try {
 				String value = props.getProperty(name);
 				if (!StringUtils.isEmpty(value)) {
-					return Integer.parseInt(value);
+					return Integer.parseInt(value.trim());
 				}
 			} catch (NumberFormatException e) {
 				logger.warn("Failed to parse integer for " + name + " using default of "
@@ -116,7 +117,7 @@
 		}
 		return defaultValue;
 	}
-	
+
 	/**
 	 * Returns the char value for the specified key. If the key does not exist
 	 * or the value for the key can not be interpreted as a char, the
@@ -131,7 +132,7 @@
 		if (props.containsKey(name)) {
 			String value = props.getProperty(name);
 			if (!StringUtils.isEmpty(value)) {
-				return value.charAt(0);
+				return value.trim().charAt(0);
 			}
 		}
 		return defaultValue;
@@ -151,7 +152,7 @@
 		if (props.containsKey(name)) {
 			String value = props.getProperty(name);
 			if (value != null) {
-				return value;
+				return value.trim();
 			}
 		}
 		return defaultValue;
@@ -194,4 +195,14 @@
 	public void overrideSetting(String key, String value) {
 		overrides.put(key, value);
 	}
+
+	/**
+	 * Updates the values for the specified keys and persists the entire
+	 * configuration file.
+	 * 
+	 * @param map
+	 *            of key, value pairs
+	 * @return true if successful
+	 */
+	public abstract boolean saveSettings(Map<String, String> updatedSettings);
 }
\ No newline at end of file

--
Gitblit v1.9.1