anchor.diff:  	            return instance.overrideConfig;
   	        }
   	        return make( static.securityConfigurationImplName, "SecurityConfiguration" );
  -        </cfscript>
  +        </cfscript> 
   	</cffunction>
   
   
   	<cffunction access="public" returntype="Validator" name="validator" output="false" hint="the current ESAPI Validator being used to validate data in this application.">
   		<cfscript>
           	return make( securityConfiguration().getValidationImplementation(), "Validator" );
  -        </cfscript>
  +        </cfscript> 
   	</cffunction>
   
   
  
positive.code: 		<cfargument type="String" name="moduleName" required="true" hint="The module to associate the logger with.">
  		<cfscript>
  			return logFactory().getLogger(arguments.moduleName);
  		</cfscript>
  	</cffunction>
  
  
  	<cffunction access="public" returntype="Logger" name="log" output="false" hint="The default Logger.">
  		<cfscript>
         		return logFactory().getLogger("DefaultLogger");
      	</cfscript>
  	</cffunction>
  
  
  	<cffunction access="public" returntype="Randomizer" name="randomizer" output="false" hint="the current ESAPI Randomizer being used to generate random numbers in this application.">
  		<cfscript>
          	return make( securityConfiguration().getRandomizerImplementation(), "Randomizer" );
          </cfscript>
  	</cffunction>
  
  
  
negative.code: 		<cfargument type="String" name="className" required="true">
  		<cfargument type="String" name="typeName" required="true">
  		<cfscript>
  			if (isNull(arguments.typeName) || arguments.typeName == "") {
  				// No big deal...just use "[unknown?]" for this as it's only for an err msg.
  				arguments.typeName = "[unknown?]";	// CHECKME: Any better suggestions?
  			}
  			// check whether we already have an instance
  			if (!structKeyExists(componentMap, arguments.typeName)) {
  				//try {
  					if (isNull(arguments.className) || arguments.className == "") {
  						throw(object=createObject("java", "java.lang.IllegalArgumentException").init("Classname cannot be null or empty."));
  					}
  					componentMap[arguments.typeName] = createObject("component", arguments.className).init(this);
  				/*}
  				catch( java.lang.IllegalArgumentException ex ) {
  					errMsg = ex.toString() & " " & arguments.typeName & " type name cannot be null or empty.";
  					cfex = createObject("component", "cfesapi.org.owasp.esapi.errors.ConfigurationException").init(errMsg, ex);
  					throw(type=cfex.getType(), message=cfex.getMessage());
  				}
  				catch ( java.lang.ClassNotFoundException ex ) {
  					errMsg = ex.toString() & " " & arguments.typeName & " class (" & arguments.className & ") must be in class path.";
  					cfex = createObject("component", "cfesapi.org.owasp.esapi.errors.ConfigurationException").init(errMsg, ex);
  					throw(type=cfex.getType(), message=cfex.getMessage());
  				}
  				catch( java.lang.Exception ex ) {
  					errMsg = ex.toString() & " " & arguments.typeName & " class (" & arguments.className & ") CTOR threw exception.";
  					cfex = createObject("component", "cfesapi.org.owasp.esapi.errors.ConfigurationException").init(errMsg, ex);
  					throw(type=cfex.getType(), message=cfex.getMessage());
  				}*/
  			}
  			
  			// return component instance
  			return componentMap[arguments.typeName];
  		</cfscript> 
  	</cffunction>
  
  
  