Merged V3.1 to HEAD

13484: ETHREEOH-1547: Do not set requiresNew flag and propagate exceptions in BaseDialogBean
   13383: ETHREEOH-1220: Update LDAP-authentication-context to include allowGetEnabled entry to support Share
   13381: ETHREEOH-1181: NTLM authentication periodically fails over CIFS - "Read-Write transaction started within read-only transaction"
   13376: ETHREEOH-279: Friendly error message when cm:filename regular expression constraint is violated
   13364: ETHREEOH-814: Correct character encoding issues in LDAP synchronization
   13353: ETHREEOH-1444: Ability to run Alfresco from unexploded .war file with embedded license
   13328: ETHREEOH-1400: Prevent TLD warnings on Weblogic startup
   13183: Follow up to 13177: Fixes for Weblogic compatibility
   13177: Fixes for Weblogic compatibility
   13109: Build/test fix (to avoid unintentional import via application-context.xml)
   13100: Checkpoint for new DM index check (enterprise-only)


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13525 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2009-03-10 14:27:09 +00:00
parent 054d6d46b0
commit 1264fca386
14 changed files with 295 additions and 47 deletions

View File

@@ -29,6 +29,7 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.alfresco.i18n.I18NUtil;
import org.alfresco.service.cmr.dictionary.ConstraintException;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
@@ -51,6 +52,7 @@ public class RegexConstraint extends AbstractConstraint
{
public static final String CONSTRAINT_REGEX_NO_MATCH = "d_dictionary.constraint.regex.no_match";
public static final String CONSTRAINT_REGEX_MATCH = "d_dictionary.constraint.regex.match";
public static final String CONSTRAINT_REGEX_MSG_PREFIX = "d_dictionary.constraint.regex.error.";
private String expression;
private Pattern patternMatcher;
@@ -127,7 +129,14 @@ public class RegexConstraint extends AbstractConstraint
boolean matches = matcher.matches();
if (matches != requiresMatch)
{
if (requiresMatch)
// Look for a message corresponding to this constraint name
String messageId = CONSTRAINT_REGEX_MSG_PREFIX + getShortName();
if (I18NUtil.getMessage(messageId, value) != null)
{
throw new ConstraintException(messageId, value);
}
// Otherwise, fall back to a generic (but unfriendly) message
else if (requiresMatch)
{
throw new ConstraintException(RegexConstraint.CONSTRAINT_REGEX_NO_MATCH, value, expression);
}