From ddcebbd982d81dabf8cb1c89f60f9b876a23b58c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 04 Sep 2014 13:32:44 -0400 Subject: [PATCH] Merged #149 "Repo creation with initial commit fails if user does not have an email address" --- src/main/java/com/gitblit/utils/StringUtils.java | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java index ed10eb6..087de54 100644 --- a/src/main/java/com/gitblit/utils/StringUtils.java +++ b/src/main/java/com/gitblit/utils/StringUtils.java @@ -127,12 +127,28 @@ retStr.append("%2F"); } else if (inStr.charAt(i) == ' ') { retStr.append("%20"); + } else if (inStr.charAt(i) == '&') { + retStr.append("%26"); + } else if (inStr.charAt(i) == '+') { + retStr.append("%2B"); } else { retStr.append(inStr.charAt(i)); } i++; } return retStr.toString(); + } + + /** + * Flatten the list of strings into a single string with the specified + * separator. + * + * @param values + * @param separator + * @return flattened list + */ + public static String flattenStrings(String[] values, String separator) { + return flattenStrings(Arrays.asList(values), separator); } /** @@ -293,7 +309,7 @@ * @param bytes * @return byte array as hex string */ - private static String toHex(byte[] bytes) { + public static String toHex(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.length * 2); for (int i = 0; i < bytes.length; i++) { if ((bytes[i] & 0xff) < 0x10) { @@ -384,7 +400,7 @@ * @return the first invalid character found or null if string is acceptable */ public static Character findInvalidCharacter(String name) { - char[] validChars = { '/', '.', '_', '-', '~' }; + char[] validChars = { '/', '.', '_', '-', '~', '+' }; for (char c : name.toCharArray()) { if (!Character.isLetterOrDigit(c)) { boolean ok = false; @@ -628,7 +644,7 @@ // ignore unsupported charsets } } - if (value.startsWith("\uFEFF")) { + if (value != null && value.startsWith("\uFEFF")) { // strip UTF-8 BOM return value.substring(1); } -- Gitblit v1.9.1