From 86bea9e0016b2890db8ba83049dd4e89653a0a5e Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 16 Mar 2012 17:29:39 -0400
Subject: [PATCH] Ensure that the welcome message is interpreted as UTF-8 (issue 74)

---
 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