Fix locale validator, don't sanitize already validated tz and locale and prepare for 6.1.3 rc2.
diff --git a/app/src/main/java/org/apache/roller/weblogger/pojos/User.java b/app/src/main/java/org/apache/roller/weblogger/pojos/User.java
index 017a0bc..da100e7 100644
--- a/app/src/main/java/org/apache/roller/weblogger/pojos/User.java
+++ b/app/src/main/java/org/apache/roller/weblogger/pojos/User.java
@@ -186,25 +186,25 @@
     }
 
     /**
-     * Locale of the user.
+     * Locale of the user, must be valid Java locale.
      */
     public String getLocale() {
         return this.locale;
     }
     
     public void setLocale(String locale) {
-        this.locale =  HTMLSanitizer.conditionallySanitize(locale);
+        this.locale = locale;
     }
 
     /**
-     * Timezone of the user.
+     * Timezone of the user, must be valid Java timezone.
      */
     public String getTimeZone() {
         return this.timeZone;
     }
     
     public void setTimeZone(String timeZone) {
-        this.timeZone =  HTMLSanitizer.conditionallySanitize(timeZone);
+        this.timeZone = timeZone;
     }
     
     
diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java
index fc39212..6f83a0d 100644
--- a/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java
+++ b/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Profile.java
@@ -157,6 +157,7 @@
 
         // validate that bean's timeZone field is a valid time zone
         if (!StringUtils.isEmpty(getBean().getTimeZone())) {
+            // looking up the time zone by id did not work for me
             final Optional<String> first = Arrays.stream(TimeZone.getAvailableIDs())
                     .filter(id -> id.equals(getBean().getTimeZone())).findFirst();
             if (first.isEmpty()) {
@@ -166,8 +167,10 @@
 
         // validate that bean's locale field is a valid locale
         if (!StringUtils.isEmpty(getBean().getLocale())) {
-            Locale locale = Locale.forLanguageTag(bean.getLocale());
-            if (locale == null || "".equals(locale.getDisplayName())) {
+            // looking up the time zone by id did not work for me
+            final Optional<Locale> first = Arrays.stream(Locale.getAvailableLocales())
+                    .filter(locale -> locale.toString().equals(getBean().getLocale())).findFirst();
+            if (first.isEmpty() || "".equals(first.get().getDisplayName())) {
                 addError("error.add.user.invalid.locale");
             }
         }
diff --git a/assembly-release/sign-release.sh b/assembly-release/sign-release.sh
index 0c959ac..650ca2c 100755
--- a/assembly-release/sign-release.sh
+++ b/assembly-release/sign-release.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-export rcstring="r1"
+export rcstring="r2"
 export vstring="6.1.3"
 
 # for rc releases we rename the release files