James Moger
2014-10-10 a74ddc24545ec45d0bb82ca2bb8f628ffdaa9da3
src/main/java/com/gitblit/utils/StringUtils.java
@@ -129,12 +129,26 @@
            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);
   }
   /**
@@ -295,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) {
@@ -386,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;
@@ -630,7 +644,7 @@
            // ignore unsupported charsets
         }
      }
      if (value.startsWith("\uFEFF")) {
      if (value != null && value.startsWith("\uFEFF")) {
         // strip UTF-8 BOM
            return value.substring(1);
        }