anchor.diff:              we don't indent CDATA ends, because that would change the
               content of the CDATA, which isn't desirable
             */
  -          lines[i] = repeatString( indent, depth ) & line;
  +          lines[i]=repeatString( indent, depth ) & line;
           }
         }
   
         return arrayToList( lines, chr( 10 ));
       }
  -    catch( any cfcatch )
  +    catch( Any cfcatch )
       {
         return handleError( cfcatch );
       }
  
positive.code: component accessors = true
            persistent = true
  {
    /*
      Generate ideal certificates like this:
  
      1.  keytool -genkey -keyalg RSA -sigAlg SHA256withRSA -keysize 2048 -validity 1825 -alias {KeyStoreAlias} -keystore {keystoreFileName.ks}
      2.  keytool -export -v -rfc -alias {KeyStoreAlias} -keystore {keystoreFileName.ks} -file {certificateFileName.cer}
  
      Upload ks file to your server ( not to a web accessible directory )
      Upload cer file to ideal dashboard
  
      Requirements:
       - javaloader which is used to compile idealcrypto.class
    */
  
    property name="timestamp" type="date";
    property name="issuerID" type="string";
    property name="merchantID" type="numeric";
    property name="subID" default="0" type="numeric";
    property name="purchaseID" type="numeric"                                     hint="Order ID";
    property name="transactionID" default="" type="string";
    property name="amount" type="numeric";
    property name="currency" type="string" default="EUR";
    property name="language" type="string" default="nl";
    property name="description" type="string"                                     hint="NO HTML ALLOWED!";
    property name="entranceCode" type="string"                                    hint="Session ID";
    property name="expirationPeriod" type="string"                                hint="Optional, date period format: PnYnMnDTnHnMnS";
    property name="defaultCountry" default="Nederland" type="string"              hint="Optional, set to country of website";
    property name="merchantReturnURL" type="string";
    property name="ksFile" type="string";
    property name="ksAlias" type="string";
    property name="ksPassword" type="string";
    property name="idealURL" required="yes" type="string";
    property name="debugIP" default="::1,fe80:0:0:0:0:0:0:1%1,127.0.0.1" required=false type="string";
    property name="debugEmail" default="administrator@your-website-here.nl" required=false type="string";
    property name="debugLog" default="ideal-cfc" required=false type="string";
  
    variables.cacheName = "cache";
  
    if( not structKeyExists( server, 'idealcrypto' ))
    {
      variables.pwd = getDirectoryFromPath( GetCurrentTemplatePath());
      variables.jl = new javaloader.JavaLoader( sourceDirectories = [ '#variables.pwd#\..\java' ]);
      variables.idealcrypto = jl.create( 'idealcrypto' );
      server.idealcrypto = variables.idealcrypto;
    }
  
    variables.idealcrypto = server.idealcrypto;
  
    /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    public ideal function init( string config="", struct initProperties={} )
    {
      try
      {
        var tempfunc = "";
  
        lock  name="lock_#application.applicationname#_init"
              timeout="5"
  
negative.code:                 detail="#httpRequest.ErrorDetail#" );
        }
  
        var result=xmlParse( httpRequest.fileContent );
  
        /* Error logging */
        if( structKeyExists( result, "AcquirerErrorRes" ))
  