anchor.diff:  						date = arguments.format.parse(javaCast("string", date));
   					}
   					catch(java.text.ParseException e) {
  -						throwException(createObject("component", "org.owasp.esapi.errors.ValidationException").init(variables.ESAPI, arguments.context & ": Invalid date must follow " & arguments.format.toLocalizedPattern() & " format", "Invalid date: context=" & arguments.context & ", format=" & arguments.format.toLocalizedPattern() & ", input=" & arguments.input, e, arguments.context));
  +						msgParams = [arguments.context, arguments.input, arguments.format.toLocalizedPattern()];
  +						throwException(createObject("component", "org.owasp.esapi.errors.ValidationException").init(variables.ESAPI, variables.ESAPI.resourceBundle().messageFormat("Validator.getValidDate.patternMismatch.userMessage", msgParams), variables.ESAPI.resourceBundle().messageFormat("Validator.getValidDate.patternMismatch.logMessage", msgParams), e, arguments.context));
   					}
   					date = createDateTime(year(date), month(date), day(date), hour(date), minute(date), second(date));
   				}
  
positive.code: 					return newJava("java.lang.String").init(getValidPrintable(arguments.context, canonical.getBytes(), arguments.maxLength, arguments.allowNull));
  				}
  				catch(org.owasp.esapi.errors.EncodingException e) {
  					throwException(createObject("component", "org.owasp.esapi.errors.ValidationException").init(variables.ESAPI, arguments.context & ": Invalid printable input", "Invalid encoding of printable input, context=" & arguments.context & ", input=" & arguments.input, e, arguments.context));
  				}
  			}
  		</cfscript>
  
negative.code: 			var addend = "";
  			var timesTwo = "";
  			var modulus = "";
  			var userParams = [];
  			var logParams = [];
  
  			if(structKeyExists(arguments, "errorList")) {
  
  