cfscript error

Have a page that works fine
on the dev server, but crashes with the following error on the production server:
Context validation error for tag cfscript.
The start tag must have a matching end tag. An explicit end tag can be provided by adding </cfscript>. If the body of the tag is empty you can use the shortcut <cfscript .../>.The CFML compiler was processing:
a cfscript tag beginning on line 10, column 10.
a cfscript tag beginning on line 10, column 10.
The error occurred in D:\inetpub\wwwroot\MercedCOMVIP\contact_form.cfm: line 10
8 :   <cfset var char = "">
9 :
10 :      <cfscript>
11 :       for(i=1; i <= length; i++) {
12 :         char = mid(chars, randRange(1, len(chars)),1);
Here's the code referenced in the error:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<cffunction name="makeRandomString" returnType="string" output="false">
  <cfset var chars = "123456789">
  <cfset var length = randRange(4,6)>
  <cfset var result = "">
  <cfset var i = "">
  <cfset var char = "">
<cfscript>
  for(i=1; i <= length; i++) {
char = mid(chars, randRange(1, len(chars)),1);
result&=char;
</cfscript>
  <cfreturn result>
</cffunction>

Well, I changed the result&=char; line to result = result & char; - worked in dev,
crashed with the same error in prod.  Turns out prod is running CF MX7!  I'm adding a captcha to the page, so
i've got to upgrade to version 8.  That must be what's causing the error.
Thanks

Similar Messages

  • Please help with cfscript error!

    When I run my app, I got this error:
    sdfst_catcherror is recording this error: Context validation
    error for tag cfscript.; The start tag must have a matching end
    tag. An explicit end tag can be provided by adding
    </cfscript>. If the body of the tag is empty you can use the
    shortcut <cfscript .../>.
    The CFML compiler was processing:
    a cfscript tag beginning on line 45, column 4.
    a cfscript tag beginning on line 45, column 4.
    When I checked my codes, all the
    <cfscript></cfscript> have the pairs. There are only 2
    pairs of <cfscript</cfscript> in this template.
    See my code structure below:
    <!--- the first <cfscript pair> --->
    <cfscript>
    function getTRS(var5)
    some codes here...
    return TRS;
    </cfscript>
    <cffunction name="FrmTxt" returntype="Struct">
    <cfargument name="EmpCodes" required="true"
    type="array">
    <cfargument name="EmpID" required="true"
    type="numeric">
    <cfquery name="GetEmpInfo>
    Select * from......
    </cfquery>
    <cfset varFrms = GetEmpInfo.EmpCodes>
    <cfset A_Key = 1>
    <cfset structFrmTxt = StructNew()>
    <!--- The second pair --->
    <cfscript>
    Some codes here....
    Need to output #TRS# returned by getTRS(var5) set above
    </cfscript>
    <cfreturn structFrmTxt>
    </cffunction>
    From other CF forum I learned that I can't put getTRS(var5)
    within the second <cfscript></cfscript> within
    <CFFUNCTION> pair
    it says "You can't put UDF within UDF or method within
    method". When I did originally, I got this error:
    Unable to complete CFML to Java translation, Error
    information unsupported statement: class
    coldfusion.compiler.ASTfunctionDefinition
    I'm stuck and can't find any resources to solve this problem
    anymore, please help!....

    When I checked my codes, all the
    <cfscript></cfscript> have the pairs.
    This error can often mean that you did not properly end a
    previous code
    block or line. So the closing </cfscript> is being
    considered part of
    that unclosed code. For me, it is often a missing semi-colon
    [;] on the
    last line I wrote, missing a closing curly bracket [}] could
    do it as well.
    Check your code, this is seldom more then missing a bit of
    syntax.

  • Adding soap header in MX6.1

    I have a code working on MX7, it first adds soap
    header(username and password) then gets the response, but similar
    code didn't work on MX6.1. Please help.
    MX7 code:
    <cfscript>
    ru = XmlNew();
    ru.AuthenticationHeader = XmlElemNew(ru, "
    http://www.mytesting.com/Webservices/ProductInfo","AuthenticationHeader");
    ru.AuthenticationHeader.UserName = mlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","UserName");
    ru.AuthenticationHeader.UserName.XmlText = "myusername";
    ru.AuthenticationHeader.Password = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","Password");
    ru.AuthenticationHeader.Password.XmlText = "mypassword";
    ws = CreateObject("webservice", "
    http://www.mytesting.com/Webservices/ProductInfo/Management.asmx?WSDL");
    addSOAPRequestHeader(ws, "
    http://www.mytesting.com/Webservices/ProductInfo",
    "AuthenticationHeader", ru.AuthenticationHeader, true);
    subbid = ws.GetProductInfo();
    </cfscript>
    MX6.1 code:
    <!--- get SOAP functions --->
    <cfinclude template="soap-udfs.cfm">
    <cfscript>
    ru = XmlNew();
    ru.AuthenticationHeader = XmlElemNew(ru, "
    http://www.mytesting.com/Webservices/ProductInfo","AuthenticationHeader");
    ru.AuthenticationHeader.UserName = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","UserName");
    ru.AuthenticationHeader.UserName.XmlText = "myusername";
    ru.AuthenticationHeader.Password = XmlElemNew(ru,"
    http://www.mytesting.com/Webservices/ProductInfo","Password");
    ru.AuthenticationHeader.Password.XmlText = "mypassword";
    ws = CreateObject("webservice", "
    http://www.mytesting.com/Webservices/ProductInfo/Management.asmx?WSDL");
    addRequestHeader(ws, "AuthenticationHeader",
    ru.AuthenticationHeader, "
    http://www.mytesting.com/Webservices/ProductInfo",
    true);
    subbid = ws.GetProductInfo();
    </cfscript>
    Error message for MX6.1:
    Could not perform web service invocation "GetProductInfo"
    because AxisFault faultCode: {
    http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode: faultString: java.io.IOException: No serializer found
    for class coldfusion.xml.XmlNodeList in registry
    org.apache.axis.encoding.TypeMappingImpl@19a61ad faultActor:
    faultNode: faultDetail: {
    http://xml.apache.org/axis/}stackTrace:
    java.io.IOException: No serializer found for class
    coldfusion.xml.XmlNodeList in registry
    org.apache.axis.encoding.TypeMappingImpl@19a61ad at
    org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImp l.java:1281)
    at
    org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java :795)
    at
    org.apache.axis.message.MessageElement.outputImpl(MessageElement.java:817)
    at
    org.apache.axis.message.SOAPHeaderElement.outputImpl(SOAPHeaderElement.java:250)
    at
    org.apache.axis.message.MessageElement.output(MessageElement.java:783)
    at
    org.apache.axis.message.SOAPHeader.outputImpl(SOAPHeader.java:342)
    at org.apache.ax...

    XML snippit
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:con="urn:crmondemand/ws/contact/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:con1="urn:/crmondemand/xml/contact">
    <soapenv:Header>
    <wsse:Security>
    <wsse:UsernameToken>
    <wsse:Username>your_site/your_login</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">your_password</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    This isn't exactly what you are looking for but you can use this to add a header to a axis web service call.
    SOAPHeaderElement header = new SOAPHeaderElement("http://your.xsd", "your tag");
    SOAPHeaderElement header1 = new SOAPHeaderElement("http://your other.xsd", "your other tag");
    header1.setAttribute("Id", "your value");
    header.addChild(header1);
    SOAPElement node = header1.addChildElement("more text");
    node.addTextNode("more text");
    SOAPElement nodepwd = header1.addChildElement("another tag");
    nodepwd.addTextNode("more text");
    nodepwd.setAttribute("Type", "http://another url");
    ((Stub)service2).setHeader(header);
    Hope this is more helpful than confusing.

  • Need help... Context validation error for tag cfscript.

    Code:
        <cffunction name="computeHash" access="public" returntype="String">
          <cfargument name="password" type="string" />
          <cfargument name="salt" type="string" />
          <cfargument name="iterations" type="numeric" required="false" default="1024" />
          <cfargument name="algorithm" type="string" required="false" default="SHA512" />
          <cfscript>
            var hashed = '';
            var i = 1;
            hashed = hash( password & salt, arguments.algorithm, 'UTF-8' );
            for (i = 1; i <= iterations; i++) {
              hashed = hash( hashed & salt, arguments.algorithm, 'UTF-8' );
            return hashed;
          </cfscript>
        </cffunction>
    Error on web app:
    Context  validation error for tag cfscript.
    The start tag must have a matching  end tag. An explicit end tag can be provided by adding </cfscript>. If the  body of the tag is empty you can use the shortcut <cfscript .../>. The CFML compiler was processing:
    a cfscript tag beginning on line 11, column 12.
    a cfscript tag beginning on line 11, column 12.
    The  error occurred in xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\salty.cfc: line  11
    9 :        <cfargument name="iterations" type="numeric" required="false" default="1024" />
    10 :        <cfargument name="algorithm" type="string" required="false" default="SHA512" />
    11 :        <cfscript>
    12 :           var hashed = '';
    13 :           var i = 1;
    I am completely lost on why it's fumbling with why it says there's no closing tag.  Help!!!!
    Thanks

    What's on lines 1-7 of that file?
    That code compiles fine for me on CF8 & CF9, so that's not where the error is.
    You're not trying to compile it on any earlier version of CF than CF8 are you?  The < and ++ operators are not valid prior to CF8.  CFMX7 might see the < as a stray angle bracket, and get confused.  I don't have CFMX7 running here to test the exact error that would produce, sorry.
    Adam

  • After upgrade to CF9, CFIMAGE "Unable to create temporary file" error

    We recently upgraded from CF8 to CF9 Enterprise.  I'm getting an "Unable to create temporary file" error on
    my CFIMAGE resize calls.  We use sandbox security.  I assume I need to grant write access to whatever folder CF uses for temp files, but which folder is it?   The same code (and sandbox settings) ran fine in CF8....
    Note, if I attempt to add C:\JRun4\servers\cfusion\SERVER-INF\temp to the sandbox for this particular app, CF crashes on all requests across all apps on the server with a:
    Security: The requested template has been denied access to C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfclasses\cfapp2ecfc1510154633.c lass.
    The following is the internal exception message: access denied (java.io.FilePermission C:\JRun4\servers\cfusion\cfusion-ear\cfusion-war\WEB-INF\cfclasses\cfapp2ecfc1510154633.c lass read)
    ColdFusion cannot determine the line of the template that caused this error. This is often caused by an error in the exception handling subsystem.
    I need to restart CF to get everything working again.

    Another update.   Had a problem with a sandboxed CF9 site doing a simple CFIMAGE READ to a memory variable.  Got an "Unable to create temporary file" error.
    Inserted the following code in the file upload page:
    <cfscript>
    writeoutput("Temp Dir : " & createobject("java","java.lang.System").getProperty("java.io.tmpdir") );
    </cfscript>
    ... and it reveals the temp directory as C:\WINDOWS\TEMP.  Added that to the sandbox, and the CFIMAGE READ is working properly now.
    Note this seems inconsistent with CFIMAGE RESIZE behavior which appears to use the CF GetTempDirectory() value, which in my case is C:\JRun4\servers\cfusion\SERVER-INF\temp\cfusion-war-tmp\
    For reference, see the section "Sandbox Considerations" at this link:
    http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc8 .html#WSc3ff6d0ea77859461172e0811cbf364104-7fcc

  • The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or

    I have taken the cfdump for tmpqry and it shows all data for
    the range ( No error at this step ) . But when we exceute this
    dbquery we get below mentioned error .
    <cfquery name="qry" dbtype="query" >
    SELECT *
    FROM tmpqry
    ORDER BY #arguments.colSort# ASC
    </cfquery>
    senerio:
    I am using createobject to create a reference for component
    and call MDArraySort function in the cfc and getting this error .
    'The system has attempted to use an undefined value, which
    usually indicates a programming error, either in your code or some
    system code.
    Null pointer is undefined.... '
    i am using this code in a cfc file.
    <cffunction name="MDArraySort" Returntype="query"
    access="public" >
    <cfargument name="colArray" type="array"
    required="true">
    <cfargument name="colNames" type="string"
    required="true">
    <cfargument name="colSort" type="string"
    required="true">
    <cfargument name="sensorIDs" type="string"
    required="true">
    <cfscript>
    var tmpqry = Querynew(arguments.colNames);
    var qRow = QueryAddRow(tmpqry, Arraylen(arguments.colArray)
    </cfscript>
    <cfloop from="1" to="#Arraylen(arguments.colArray)#"
    index="qRowIndex">
    <cfscript>
    sIndexinSensorIDs = colArray[qRowIndex]["SENSOR"]&"##";
    Temp_readin_code =
    colArray[qRowIndex]["READING_CODE"]&"##";
    QuerySetCell(tmpqry, 'SENSOR', sIndexinSensorIDs,
    qRowIndex);
    QuerySetCell(tmpqry,
    'TYPE',javacast('String',colArray[qRowIndex]["TYPE"]), qRowIndex);
    QuerySetCell(tmpqry, 'TIMESTAMP2',
    LSParseDateTime(colArray[qRowIndex]["TIMESTAMP2"]), qRowIndex);
    QuerySetCell(tmpqry,
    'ORDER_BY_PARAM',javacast('String',colArray[qRowIndex]["ORDER_BY_PARAM"]),
    qRowIndex);
    QuerySetCell(tmpqry, 'READING_CODE',Temp_readin_code ,
    qRowIndex);
    QuerySetCell(tmpqry,
    'READING',javacast('String',colArray[qRowIndex]["READING"]),
    qRowIndex);
    QuerySetCell(tmpqry,
    'PK_READING',javacast('String',colArray[qRowIndex]["PK_READING"]),
    qRowIndex);
    QuerySetCell(tmpqry,
    'ALARM_STATUS',javacast('String',colArray[qRowIndex]["ALARM_STATUS"]),
    qRowIndex);
    QuerySetCell(tmpqry, 'DURATION',
    javacast('String',colArray[qRowIndex]["DURATION"]), qRowIndex);
    QuerySetCell(tmpqry,
    'DESCRIPTION',javacast('String',colArray[qRowIndex]["DESCRIPTION"]),
    qRowIndex);
    </cfscript>
    </cfloop>
    <cfquery name="qry" dbtype="query" >
    SELECT *
    FROM tmpqry
    ORDER BY #arguments.colSort# ASC
    </cfquery>
    <cfreturn qry >
    </cffunction>
    It is working fine for some date range and and getting above
    mentioned error in sone situation .

    Hi All ,
    Thank you for your support ,
    Finally i have fix the issue using some changes in my
    function in cfc .
    <cffunction name="MDArraySort" Returntype="query"
    access="public" >
    <cfargument name="colArray" type="array"
    required="true">
    <cfargument name="colNames" type="string"
    required="true">
    <cfargument name="colSort" type="string"
    required="true">
    <cfargument name="sensorIDs" type="string"
    required="true">
    <cfscript>
    //Declare variable collection used in function as local
    --->
    var tmpqry =
    Querynew(arguments.colNames,"CF_SQL_VARCHAR,CF_SQL_VARCHAR,CF_SQL_DATE,CF_SQL_VARCHAR,CF_ SQL_VARCHAR,CF_SQL_VARCHAR,CF_SQL_VARCHAR,CF_SQL_VARCHAR,CF_SQL_VARCHAR,CF_SQL_VARCHAR");
    var qRow = QueryAddRow(tmpqry,
    Arraylen(arguments.colArray));
    </cfscript>
    <cfloop from="1" to="#Arraylen(arguments.colArray)#"
    index="qRowIndex">
    <cfscript>
    // Populate the query table
    QuerySetCell(tmpqry, 'SENSOR',
    colArray[qRowIndex]["SENSOR"], qRowIndex);
    QuerySetCell(tmpqry,
    'TYPE',arguments.colArray[qRowIndex]["TYPE"], qRowIndex);
    QuerySetCell(tmpqry, 'TIMESTAMP2',
    LSParseDateTime(arguments.colArray[qRowIndex]["TIMESTAMP2"]),
    qRowIndex);
    QuerySetCell(tmpqry,
    'ORDER_BY_PARAM',arguments.colArray[qRowIndex]["ORDER_BY_PARAM"],
    qRowIndex);
    QuerySetCell(tmpqry, 'READING_CODE',
    colArray[qRowIndex]["READING_CODE"] , qRowIndex);
    QuerySetCell(tmpqry,
    'READING',arguments.colArray[qRowIndex]["READING"], qRowIndex);
    QuerySetCell(tmpqry,
    'PK_READING',arguments.colArray[qRowIndex]["PK_READING"],
    qRowIndex);
    QuerySetCell(tmpqry,
    'ALARM_STATUS',arguments.colArray[qRowIndex]["ALARM_STATUS"],
    qRowIndex);
    QuerySetCell(tmpqry, 'DURATION',
    arguments.colArray[qRowIndex]["DURATION"], qRowIndex);
    QuerySetCell(tmpqry,
    'DESCRIPTION',arguments.colArray[qRowIndex]["DESCRIPTION"],
    qRowIndex);
    </cfscript>
    </cfloop>
    <cfquery name="qry" dbtype="query" >
    SELECT *
    FROM tmpqry
    ORDER BY #arguments.colSort# ASC
    </cfquery>
    <cfreturn qry >
    </cffunction>
    Rajesh
    SCMS
    India

  • Coldfusion 11 Running on IIS Server and Java CreateObject Error

    I am getting the error below when trying to create an object in CF 11 using cfscript. In the CF Admin Java VM settings are the default setting. I have placed xmlsec-1.5.8.jar file under \cfusion\lib and cfusion\wwwroot\WEB-INF\lib I have also restarted the CF service.
    java.lang.NoClassDefFoundError: Could not initialize class org.apache.xml.security.signature.XMLSignature
    sun.misc.Unsafe.ensureClassInitialized(Native Method) at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAccessorFactory.java:4 3) at sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:142) at java.lang.reflect.Field.acquireFieldAccessor(Field.java:1082) at java.lang.reflect.Field.getFieldAccessor(Field.java:1063) at java.lang.reflect.Field.get(Field.java:387) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at coldfusion.runtime.StructBean.invoke(StructBean.java:508) at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2553) at cfdump2ecfm2106091068$funcDUMPOBJECT.runFunction(/WEB-INF/cftags/dump.cfm:1797) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:533) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2805) at cfdump2ecfm2106091068$funcRENDEROUTPUT.runFunction(/WEB-INF/cftags/dump.cfm:681) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:487) at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:383) at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95) at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:334) at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:231) at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2840) at cfdump2ecfm2106091068._factor17(/WEB-INF/cftags/dump.cfm:565) at cfdump2ecfm2106091068._factor25(/WEB-INF/cftags/dump.cfm:564) at cfdump2ecfm2106091068._factor3(/WEB-INF/cftags/dump.cfm) at cfdump2ecfm2106091068._factor54(/WEB-INF/cftags/dump.cfm:493) at cfdump2ecfm2106091068.runPage(/WEB-INF/cftags/dump.cfm:1) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:246) at coldfusion.filter.CFVariablesScopeFilter.invoke(CFVariablesScopeFilter.java:56) at coldfusion.tagext.lang.ModuleTag.doStartTag(ModuleTag.java:332) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2986) at cfjavatest2ecfm1994854383.runPage(J:\PPNPF_WEB\SAMLTEST\javatest.cfm:8) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:246) at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:736) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:572) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at coldfusion.filter.IpFilter.invoke(IpFilter.java:45) at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:487) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:42) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:142) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94) at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8) at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58) at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62) at coldfusion.CfmServlet.service(CfmServlet.java:219) at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42 ) at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.j ava:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:422) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:199) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.jav a:607) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

    Does the coldfusion administrator show that the jar file is loaded? If you go to the Settings Summary and look for the CF Server Java Class Path part, it will list all the loaded files.

  • Value from CFC using cfscript

    I've got a function in a CFC that inserts a parent value into
    an Oracle table (see below). I want to extend the function to
    return the new parent ID so that I can use it to insert the child
    values. I'm using <cfscript> to execute the function which
    works fine with the data insert, but I can't quite work out how to
    output the new parent ID value in <cfscript>. Any help
    appreciated.
    Thanks in advance
    Roy.
    <cffunction name="insertApp" hint="Insert Applications"
    returntype="query">
    <cftry>
    <!--- Insert Values --->
    <cfquery name="qryAppInsert" username='#this.uid#'
    password='#this.pwd#' datasource='#this.source#'>
    INSERT INTO
    impsapp.tblAPPLICATIONS
    VALUES
    (#this.ID#, '#this.dType#',
    TO_DATE('#this.cDate#','dd-mon-yyyy'))
    </cfquery>
    <!--- Select current Value form DUAL --->
    <cfquery name="qryNewSeq" username='#this.uid#'
    password='#this.pwd#' datasource='#this.source#'>
    SELECT impsapp.Test_SEQ.currval x FROM dual
    </cfquery>
    <cfcatch type="any">
    <cfreturn "Error in Function insertApp">
    </cfcatch>
    </cftry>
    <!--- Return Query --->
    <cfreturn qryNewSeq>
    </cffunction>
    <cfscript>
    // create componet object
    comTest = createObject("component", "cfc.Test");
    // Set the properties from Form
    comTest.uid = '#myUser#';
    comTest.pwd = '#myPasswd#';
    comTest.source = '#myDS#';
    comTest.holder= #Form.eID#;
    comTest.appType = '#Form.pType#';
    comTest.recDate = '#DateFormat("#Form.dateReq#",
    "dd/mmm/yyyy")#';
    //Call insert finction
    apply_Card.insertApplications();
    //I need to be able to output and use the value x from the
    qryNewSeq above
    </cfscript>

    YourQuery = comTest.insertApp();
    Your function might be too complicated. If this.id is the
    same as test_seq.currval, why bother with the second query?

  • Wierd ColdFusion erro : Error occurred while processing request.

    Hi there ,
    I am a graduate student and new to ColdFusion.I started working on this already developed project by someone couple of years ago , and the client wants some changes to be done.so i went ahead and did some small modifications to the appearance of the form(insertdata.cfm page) like adding some more options to a drop down menu , changing the label names and so on and am very sure this changes would not have effected the application in any way.And the place where the message says the error can be , i didnt even touch that part.Now after 4 days i start getting this weird error saying " Error Occurred While Processing Request
    The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code.
    Null Pointers are another name for undefined values."
    And this happens randomly not everytime i access the website or different webpages.Here are the errors.
    The error occurred in /export/web/virtual/web3_unt_edu/cps/webaccess/sites/Amarillo/index.cfm: line 8
    5 :   SELECT UserName,Password FROM user_data WHERE UserName=
    6 :   <cfqueryparam value="#FORM.UserName#" maxlength="8">
    7 :     AND Password=
    8 :   <cfqueryparam value="#FORM.Password#" maxlength="8">
    9 :   </cfquery>
    10 :   <cfif MM_rsUser.RecordCount NEQ 0>
    I tried adding " cfsqltype="cf_sql_clob"  " in cfqueryparam also on my friends advice , but it doesnt work out.
    2nd ERROR
    The error occurred in /export/web/virtual/web3_unt_edu/cps/webaccess/sites/Amarillo/InsertData.cfm: line 13
    11 :   <cflocation url="#MM_failureURL#" addtoken="no">
    12 : </cfif>
    13 : <cfquery name="rsDay" datasource="cps">
    14 : SELECT days FROM days
    15 : </cfquery>
    3rd ERROR
    The error occurred in /export/web/virtual/web3_unt_edu/cps/webaccess/sites/Amarillo/InsertData.cfm: line 27
    25 : ORDER BY ethnicity ASC
    26 : </cfquery>
    27 : <cfquery name="rsHospitals" datasource="cps_amarillo">
    28 : SELECT *
    29 : FROM hospitals
    Can anyone help me with this. I have to get the modifications done in 2 weeks.
    Thank you
    Craj

    Hi Mak
             I can get the stack trace for now , but here is my complete code , may be this ll give u complete idea .........
    The index page where i am getting the first error
    <cfif IsDefined("FORM.UserName")>
      <cfset MM_redirectLoginSuccess="menu.cfm">
      <cfset MM_redirectLoginFailed="../../fail.htm">
      <cfquery  name="MM_rsUser" datasource="cps_amarillo">
        SELECT UserName,Password FROM user_data WHERE UserName=
      <cfqueryparam value="#FORM.UserName#" maxlength="8">
        AND Password=
      <cfqueryparam value="#FORM.Password#" maxlength="8">
      </cfquery>
      <cfif MM_rsUser.RecordCount NEQ 0>
        <cftry>
          <cflock scope="Session" timeout="30" type="Exclusive">
            <cfset Session.MM_Username=FORM.UserName>
            <cfset Session.MM_UserAuthorization="">
          </cflock>
          <cfif IsDefined("URL.accessdenied") AND true>
            <cfset MM_redirectLoginSuccess=URL.accessdenied>
          </cfif>
          <cflocation url="#MM_redirectLoginSuccess#" addtoken="no">
          <cfcatch type="Lock">
            <!--- code for handling timeout of cflock --->
          </cfcatch>
        </cftry>
      </cfif>
      <cflocation url="#MM_redirectLoginFailed#" addtoken="no">
      <cfelse>
      <cfset MM_LoginAction=CGI.SCRIPT_NAME>
      <cfif CGI.QUERY_STRING NEQ "">
        <cfset MM_LoginAction=MM_LoginAction & "?" & XMLFormat(CGI.QUERY_STRING)>
      </cfif>
    </cfif>
    <cfinclude template="../../../Connections/cps_amarillo.cfm">
    <cfif IsDefined("FORM." & "UserName")>
      <cfscript>
        MM_valUsername=Evaluate("FORM." & "UserName");
        MM_fldUserAuthorization="";
        MM_redirectLoginSuccess="menu.cfm";
        MM_redirectLoginFailed="../../fail.htm";
        MM_dataSource=MM_cps_amarillo_DSN;
        MM_queryFieldList = "UserName,Password";
        if (MM_fldUserAuthorization IS NOT "") MM_queryFieldList=MM_queryFieldList & "," & MM_fldUserAuthorization;
      </cfscript>
      <cfquery datasource=#MM_dataSource# name="MM_rsUser" username=#MM_cps_amarillo_USERNAME# password=#MM_cps_amarillo_PASSWORD#>
      SELECT #MM_queryFieldList# FROM user_data WHERE UserName='#Replace(MM_valUsername,"\'","
      ","ALL")#' AND Password='#FORM.Password#'
      </cfquery>
      <cfif MM_rsUser.RecordCount GREATER THAN 0>
        <cfscript>
          // username and password match - this is a valid user
          Session.MM_Username = MM_valUsername;
          if (MM_fldUserAuthorization IS NOT "") {
            Session.MM_UserAuthorization = MM_rsUser[MM_fldUserAuthorization][1];
          } else {
            Session.MM_UserAuthorization = "";
          if (IsDefined("accessdenied") AND true) {
            MM_redirectLoginSuccess = Evaluate("accessdenied");
        </cfscript>
        <cflocation url="#MM_redirectLoginSuccess#" addtoken="no">
      </cfif>
      <cflocation url="#MM_redirectLoginFailed#" addtoken="no">
      <cfelse>
      <cfscript>
        MM_LoginAction = CGI.SCRIPT_NAME;
        if (CGI.QUERY_STRING NEQ "") MM_LoginAction = MM_LoginAction & "?" & CGI.QUERY_STRING;
      </cfscript>
    </cfif>
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Amarillo Login Screen</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/JavaScript">
    <!--
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    function MM_validateForm() { //v4.0
      var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
      for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
        if (val) { nm=val.name; if ((val=val.value)!="") {
          if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
            if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
          } else if (test!='R') { num = parseFloat(val);
            if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
            if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
              min=test.substring(8,p); max=test.substring(p+1);
              if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
        } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
      } if (errors) alert('The following error(s) occurred:\n'+errors);
      document.MM_returnValue = (errors == '');
    //-->
    </script>
    </head>
    <body>
    <div id="Layer2" style="position:absolute; left:26px; top:112px; width:683px; height:56px; z-index:2">
      <div align="right"><font size="+6"><strong><font color="#999999" size="5" face="Verdana, Arial, Helvetica, sans-serif">Seniors
        / Volunteers for Childhood Immunization<br />
        </font></strong></font><font color="#999999" size="5"><strong><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Web
        Access Database</font></strong></font></div>
    </div>
    <div id="instructions" style="position:absolute; left:160px; top:182px; width:259px; height:30px; z-index:3"><font color="#999999" size="5"><strong><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Please
      enter your user name and password...</font></strong></font></div>
    <div id="LayerLogin" style="position:absolute; left:427px; top:182px; width:310px; height:94px; z-index:4">
      <form ACTION="<cfoutput>#MM_loginAction#</cfoutput>" name="form1" id="form1" method="POST">
        <p><img src="../../../images/image14.gif" alt="" name="UserNameImg" width="150" height="21" border="0" id="UserNameImg" />
          <input name="UserName" type="text" id="UserName" size="15" maxlength="15" />
          <br />
          <img src="../../../images/image15.gif" alt="" name="PasswordImg" width="150" height="21" border="0" id="PasswordImg" />
          <input name="Password" type="password" id="Password" size="17" maxlength="15" />
        </p>
        <p align="right">
          <input name="Submit" type="submit" id="Submit" onclick="MM_validateForm('UserName','','R','Password','','R');return document.MM_returnValue" value="Log In!" />
        </p>
      </form>
    </div>
    </body>
    </html>
    I checked it again and again , but the code seems to work well on a local host ..... but not whn i upload it to server. Please let me know where i am goin wrong.
    Thank you

  • Can't find answer to Query Of Queries runtime error

    Not only I browsed this forum but also googled this problem but unfortunnately I have no luck in finding the answer.
    All I did was writing this simple query:
    <cfquery name="test" dbtype="query">
    select SSN,BirthDate from myquery where SSN <> '' OR BirthDate <> ''
    </cfquery>
    and I got this error:
    Query Of Queries runtime error.
    Comparison exception while executing <>.
    Unsupported Type Comparison Exception: The <> operator does not support comparison between the following types:
    Left hand side expression type = "DOUBLE".
    Right hand side expression type = "STRING".
    I tried the following and did not work either, still got the same error.
    <cfquery name="test" dbtype="query"> 
    select SSN,BirthDate from myquery
    where SSN <> <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value=""/>  
    OR BirthDate <> <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value=""/></cfquery>
    Has someone ever encountered the same problem and know how to solve it?

    HELP ! ! !  Going into testing soon. I need this to work to get correct report results ! ! ! !
    My issue seems similar to the one under discussion and the reply from lawhite01 caught my eye. Can you roll my issue into this discussion?
    This is a 2 parter. The second part is the QoQ part, but the 1st part has a line in the query that is similar to the QoQ one and it uses the same data. Part 1 also throws an error.
    PART # 1.
    I'm trying to use a query table created through QueryNew and then query it.
    I need multiple columns in the query table I create:
    <cfscript>
            tot_AllCurrentDraftListing = QueryNew("AnnounceNum, JP_PDLoc, JP_JS_Title, JP_JS, JP_KW_1, JP_JobTitle, JP_Open, JP_Close, JP_CloseType, JP_CloseName, JP_PosNeed, JP_DirectHire, JP_Desc, JP_Draft, JP_Archived, JP_State, JP_AreaName, JP_AreaID, JP_AreaAlias, JP_Fac_SU, JP_Fac_Facility, JP_FAC_ID, JP_Grade1, JP_sal_low1, JP_sal_high1, JP_Grade2, JP_sal_low2, JP_sal_high2, JP_Grade3, JP_sal_low3, JP_sal_high3, JP_Grade4, JP_sal_low4, JP_sal_high4, JP_Grade5, JP_sal_low5, JP_sal_high5, JP_Posted, JP_TypeHire, JP_HRemail");
        </cfscript>
    Then I populate all the cells of the query table.
    Then I set up to use the created query table.
    I do this first:
        <cfquery name="qAltPostID" datasource="#at_datasource#">
             SELECT AltPoster, fk_Job_AnnounceNum
             from JOB_JPContacts
             Where AltJPContactType = 'AltPosterID'
             and AltPoster = '#session.IHSUID#'
             </cfquery>
    Then, in my first query using the created query, I expect to need to choose from multiple values, so I'm using this line in the query (this is NOT a QoQ query):
                and AnnounceNum IN (<cfqueryparam cfsqltype="CF_SQL_varchar" value="#ValueList(qAltPostID.fk_Job_AnnounceNum)#">)
    I've also tried:
                   and AnnounceNum IN (#ValueList(qAltPostID.fk_Job_AnnounceNum)#)   
    and:
                   and JOB_AnnounceNum IN
                    SELECT fk_Job_AnnounceNum
                    from JOB_JPContacts
                    Where AltJPContactType = 'AltPosterID'
                    and AltPoster = '#session.IHSUID#'
    ERROR is: one record should return. I get 0.
    PART # 2: Here's the QoQ part.
    I get the error:
    Query Of Queries runtime error.
    Comparison exception while executing IN.
    Unsupported Type Comparison Exception: The IN operator does not support comparison between the following types:
    Left hand side expression type = "LONG".
    Right hand side expression type = "STRING".
    A tutorial I found gave an example using only one column for this part of the fix:
         tot_AllCurrentDraftListing = QueryNew("AnnounceNum", "CF_SQL_VARCHAR")
    How would I set up the query with the datatype when I'm using multiple columns:
    <cfscript>
            tot_AllCurrentDraftListing = QueryNew("AnnounceNum, JP_PDLoc, JP_JS_Title, JP_JS, JP_KW_1, JP_JobTitle, JP_Open, JP_Close, JP_CloseType, JP_CloseName, JP_PosNeed, JP_DirectHire, JP_Desc, JP_Draft, JP_Archived, JP_State, JP_AreaName, JP_AreaID, JP_AreaAlias, JP_Fac_SU, JP_Fac_Facility, JP_FAC_ID, JP_Grade1, JP_sal_low1, JP_sal_high1, JP_Grade2, JP_sal_low2, JP_sal_high2, JP_Grade3, JP_sal_low3, JP_sal_high3, JP_Grade4, JP_sal_low4, JP_sal_high4, JP_Grade5, JP_sal_low5, JP_sal_high5, JP_Posted, JP_TypeHire, JP_HRemail");
        </cfscript>
    I used this code after all the cells contained values and before running my QoQ query:
            <cfloop index="intID" from="1" to="#tot_AllCurrentDraftListing.recordcount#" step="1">
                <cfset tot_AllCurrentDraftListing["AnnounceNum"] [intID] = JavaCast("string", intID) />
            </cfloop>
              Is that correct?
    Thanks.
    Whoever can help me with this should be awarded extra points ! ! ! !

  • The value returned from the load function is not of type numeric  errors after migration to Coldfusion 11

    I am currently testing our website with CF11. It is currently working with CF8 however after migrating it to a new server running CF11 I have encountered the following error.
    The value returned from the load function is not of type numeric.
    The error occurred in
    D:/Applications/CFusion/CustomTags/nec/com/objects/address.cfc: line 263
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/contact.cfc: line 331
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 510
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 1675
    Called from D:/website/NECPhase2/action.validate.cfm: line 54
    261 : <cfif isNumeric(get.idCountry)>
    262 : <cfset rc = this.objCountry.setID(get.idCountry)>
    263 : <cfset rc = this.objCountry.load()>
    264 : </cfif>
    265 : <cfset this.sPostcode = get.sPostcode>
    Have there been any changes between CF8 and CF11 that could  cause this error?
    Does anyone have ideas?

    This is the code in file object file country.cfc (nec.com.objects.country):
    <cfcomponent displayname="Country object" hint="This is a Country object, it allows you to access and set values in the Country.">
    <!---
    // Construct this object
    --->
    <cfset this.objFunctions = CreateObject( 'component', 'nec.com.system.functions' )>
    <cfscript>
      this.idCountryID = 0;
      this.sCountryName = "";
      this.sISOCode = "";
      this.sDHLCode = "";
      this.iErrorID = "";
    </cfscript>
    <!---
    // The following functions are the setters and getters. offering us a better way to get
    // at the contents of the object
    --->
    <!---
    // Getters
    --->
    <cffunction name="getID" displayname="Get ID" returntype="numeric" output="false" hint="This returns the ID of the current item.">
      <cfreturn this.idCountryID>
    </cffunction>
    <cffunction name="getsCountryName" displayname="Get sCountryName" returntype="string" output="false" hint="This gets the sCountryName value of this item.">
      <cfreturn this.sCountryName>
    </cffunction>
    <cffunction name="getsISOCode" displayname="Get sISOCode" returntype="string" output="false" hint="This gets the sISOCode value of this item.">
      <cfreturn this.sISOCode>
    </cffunction>
    <cffunction name="getsDHLCode" displayname="Get sDHLCode" returntype="string" output="false" hint="This gets the sDHLCode value of this item.">
      <cfreturn this.sDHLCode>
    </cffunction>
    <cffunction name="iError" displayname="Get iError" returntype="numeric" output="false" hint="This returns the iError of the current item.">
      <cfreturn this.iError>
    </cffunction>
    <!---
    // Setters
    --->
    <cffunction name="setID" displayname="Set ID" returntype="boolean" output="false" hint="This sets the ID value of this item.">
      <cfargument name="idCountryID" required="true" type="numeric" displayname="ID" hint="The ID to use.">
      <cfset this.idCountryID = arguments.idCountryID>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsCountryName" displayname="Set sCountryName" returntype="boolean" output="false" hint="This sets the sCountryName value of this item.">
      <cfargument name="sCountryName" required="true" type="string" displayname="sCountryName" hint="The sCountryName to use.">
      <cfset this.sCountryName = arguments.sCountryName>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsISOCode" displayname="Set sISOCode" returntype="boolean" output="false" hint="This sets the sISOCode value of this item.">
      <cfargument name="sISOCode" required="true" type="string" displayname="sISOCode" hint="The sISOCode to use.">
      <cfset this.sISOCode = arguments.sISOCode>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsDHLCode" displayname="Set sDHLCode" returntype="boolean" output="false" hint="This sets the sDHLCode value of this item.">
      <cfargument name="sDHLCode" required="true" type="string" displayname="sDHLCode" hint="The sDHLCode to use.">
      <cfset this.sDHLCode = arguments.sDHLCode>
      <cfreturn true>
    </cffunction>
    <!---
    // Clear, to empty out the contents of this object
    --->
    <cffunction name="clear" displayname="Clear items Details" returntype="boolean" output="false" hint="Clears out all of the items details.">
      <cfscript>
       this.sCountryName = "";
       this.sISOCode = "";
       this.sDHLCode = "";
       this.iErrorID = "";
      </cfscript>
      <cfreturn true>
    </cffunction>
    <!---
    // The following functions deal with the load, save and deleting of objects
    --->
    <!---
    // Load
    --->
    <cffunction name="load" displayname="Load items details" returntype="numeric" output="false" hint="This loads in all the information about an item.">
      <cfset rc = this.clear()>
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Check to see if it exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("load: checkID: '#this.idCountryID#' #cfcatch.detail#");
        </cfscript>
        <cfset this.iErrorID = iErrorID>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif not checkID.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         if(isDefined("session.afr")){
          whichOne = "#session.afr.getsAFRNumber()#";
         } else {
          whichOne = "";
         iErrorID = objError.addError("A Country with that id doesn't exists.[#this.idCountryID#][#whichOne#]");
        </cfscript>
       <cfset this.iErrorID = iErrorID>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // If we got past all then then load in the details
      --->
      <cftry>
       <cfquery name="get" datasource="#sDatasource#">
        SELECT idCountryID, RTRIM(sCountryName) as sCountryName, RTRIM(sISOCode) as sISOCode, RTRIM(sDHLCode) as sDHLCode
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("load: get: #cfcatch.detail#");
        </cfscript>
        <cfset this.iErrorID = iErrorID>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfset this.idCountryID = get.idCountryID>
      <cfset this.sCountryName = get.sCountryName>
      <cfset this.sISOCode = get.sISOCode>
      <cfset this.sDHLCode = get.sDHLCode>
      <cfset this.iErrorID = "">
      <cfreturn true>
    </cffunction>
    <!---
    // Save
    --->
    <cffunction name="save" displayname="Save items Details" returntype="numeric" output="false" hint="Saves (to some source) the current details for the ID of the item.">
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Now check to see if ithat ID exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("save: checkID: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <!---
      // If it doesn't exist, then add the record, otherwise update the record
      --->
      <cfif not checkID.recordCount>
       <cfreturn this.add()>
      <cfelse>
       <cfreturn this.update()>
      </cfif>
    </cffunction>
    <!---
    // Add
    --->
    <cffunction name="add" displayname="Add Country" returntype="numeric" output="false" hint="This adds a Country.">
      <!---
      // Check to see if that a different item isn't already using the same unique details
      --->
      <cftry>
       <cfquery name="checkUnique" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
        OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#'
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("add: checkUnique: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkUnique.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("A Country with that name or ISO code already exists. idCountryID=#checkUnique.idCountryID#");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <cftry>
       <cfquery name="add" datasource="#sDatasource#">
        SET nocount on
        INSERT INTO tblCountry(sCountryName, sISOCode, sDHLCode)
        VALUES('#this.objFunctions.scrubText(this.sCountryName)#','#this.objFunctions.scrubText(t his.sISOCode)#','#this.objFunctions.scrubText(this.sDHLCode)#')
        SELECT @@identity as autoID
        SET nocount off  
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("add: add: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn add.autoID>
    </cffunction>
    <!---
    // Update
    --->
    <cffunction name="update" displayname="Update Country" returntype="numeric" output="false" hint="This updates a Country record.">
      <!---
      // Check to see if that a different item isn't already using the same unique details
      --->
      <cftry>
       <cfquery name="checkUnique" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE (sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
        OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#')
        AND idCountryID <> #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("update: checkUnique: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkUnique.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("Another Country with that name already exists. idCountryID=#checkUnique.idCountryID#");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Attempt to update the record to the datasource
      // if this fails for any reason then we submit an error message
      // to the error component and return the ID of the error
      --->
      <cftry>
       <cfquery name="update" datasource="#sDatasource#">
        UPDATE tblCountry
        SET sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#',
        sISOCode = '#this.objFunctions.scrubText(this.sISOCode)#',
        sDHLCode = '#this.objFunctions.scrubText(this.sDHLCode)#'
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("update: update: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn this.idCountryID> 
    </cffunction>
    <!---
    // Delete
    --->
    <cffunction name="delete" displayname="Delete Country" returntype="numeric" output="false" hint="This deletes a Country record.">
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Now check to see if ithat ID exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: checkID: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif not checkID.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("A Country with that id doesn't exists, delete failed.");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Now check to see if there are any dependancies, if so we can't delete the item
      --->
      <cftry>
       <cfquery name="checkDependancies" datasource="#sDatasource#">
        SELECT idCountry
        FROM tblAddress
        WHERE idCountry = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: checkDependancies: idCountry: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkDependancies.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("That Country is being used by an address, delete failed.");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Now attempt to remove the record.
      // if this fails for any reason then we submit an error message
      // to the error component and return the ID of the error
      --->
      <cftry>
       <cfquery name="delete" datasource="#sDatasource#">
        DELETE FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: delete: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn this.idCountryID>
    </cffunction>
    </cfcomponent>

  • Double quotes in CFScript

    I need to add " " within a sentence inside my CFscript. When
    I applied it, I got an error, it seems that CFScript doesn't like
    the extra "" within "". What should I do so the word "Warning"
    appear to user within this double quotes
    <CFSCRIPT>
    .......some codes here
    structFormText[numKey][1]["formText"] = "I have some text
    here and I need to put double quotes surrounding a word within this
    sentence so that my user will be able to see "Warning" like what
    you are seeing now ";
    ................................some codes here
    </CFSCRIPT>

    Yet another variation
    <cfscript>
    x="...my user will be able to see #chr(34)#Warning#chr(34)#
    like what you are seeing now ...";
    </cfscript>
    <cfoutput>#x#</cfoutput>

  • Encrypt/decrypt AES 256, vorsalt error

    Hiyas.
    So I'm trying to get encrypt/decrypt to work for AES 256, with both 32byte key and 32byte IVorSalt. (Yup-new java security files v6 installed)
    'IF' I 32byte key but dont use a IV at all, I get a nice looking AES 256 result. (I can tell it's AES 256 by looking the length of the encrypted string)
    'IF' I use a 32byte key and 16bit salt, I get a AES 128 result (I know- as per docs theyre both s'posed to the same size, but the docs are wrong).
    But when i switch to using both a 32byte key AND a 32byte salt I get the error below.
    An error occurred while trying to encrypt or decrypt your input string: Bad parameters: invalid IvParameterSpec: com.rsa.jsafe.crypto.JSAFE_IVException: Invalid IV length. Should be 16.
    Has anyone 'EVER' gotten encrypt to work for them using AES 256 32byte key and 32byte salt? Is this a bug in CF? Or Java? Or I am doing something wrong?
    <!--- ////////////////////////////////////////////////////////////////////////// Here's the Code ///////////////////////////////////////////////////////////////////////// --->
    <cfset theAlgorithm  = "Rijndael/CBC/PKCS5Padding" />
    <cfset gKey = "hzj+1o52d9N04JRsj3vTu09Q8jcX+fNmeyQZSDlZA5w="><!--- these 2 are the same --->
    <!---<cfset gKey = ToBase64(BinaryDecode("8738fed68e7677d374e0946c8f7bd3bb4f50f23717f9f3667b2419483959039c", "Hex"))>--->
    <cfset theIV    = BinaryDecode("7fe8585328e9ac7b7fe8585328e9ac7b7fe8585328e9ac7b7fe8585328e9ac7b","hex")>
    <!---<cfset theIV128    = BinaryDecode("7fe8585328e9ac7b7fe8585328e9ac7b","hex")>--->
    <cffunction    name="DoEncrypt" access="public" returntype="string" hint="Fires when the application is first created.">
        <cfargument    name="szToEncrypt" type="string" required="true"/>
        <cfset secretkey = gKey>               
        <cfset szReturn=encrypt(szToEncrypt, secretkey, theAlgorithm, "Base64", theIV)>
        <cfreturn szReturn>
    </cffunction>   
    <cffunction    name="DoDecrypt" access="public" returntype="string" hint="Fires when the application is first created.">
        <cfargument    name="szToDecrypt" type="string" required="true"/>
        <cfset secretkey = gKey>   
        <cfset szReturn=decrypt(szToDecrypt, secretkey, theAlgorithm, "Base64",theIV)>       
        <cfreturn szReturn>
    </cffunction>
    <cfset szStart = form["toencrypt"]>
    <cfset szStart = "Test me!">
    <cfset szEnc = DoEncrypt(szStart)>
    <cfset szDec = DoDecrypt(szEnc)>
    <cfoutput>#szEnc# #szDec#</cfoutput>

    Hi edevmachine,
    This Bouncy Castle Encryption CFC supports Rijndael w/ 256-bit block size. (big thanks to Jason here and all who helped w/ that, btw!)
    Example:
    <cfscript>
      BouncyCastleCFC = new path.to.BouncyCastle();
      string = "ColdFusion Rocks!"; 
      key = binaryEncode(binaryDecode(generateSecretKey("Rijndael", 256), "base64"), "hex");//the CFC takes hex'd key
      ivSalt = binaryEncode(binaryDecode(generateSecretKey("Rijndael", 256), "base64"), "hex");//the CFC takes hex'd ivSalt
      encrypted = BouncyCastleCFC.doEncrypt(string, key, ivSalt);
      writeOutput(BouncyCastleCFC.doDecrypt(encrypted, key, ivSalt));
    </cfscript>
    Related links for anyone interested in adding 256-bit block size Rijndael support into ColdFusion:
    - An explanation of how to install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files into ColdFusion
    - An explanation of how to install the Bouncy Castle Crypto package into ColdFusion (near bottom, under the "Installing additional security providers" heading)
    - An explanation of how to connect the Bouncy Castle classes together
    - Bouncy Castle's doc for the Rijndael Engine
    And here is the full CFC as posted in the StackOverflow discussion:
    <cfcomponent displayname="Bounce Castle Encryption Component" hint="This provides bouncy castle encryption services" output="false">
    <cffunction name="createRijndaelBlockCipher" access="private">
        <cfargument name="key" type="string" required="true" >
        <cfargument name="ivSalt" type="string" required="true" >
        <cfargument name="bEncrypt" type="boolean" required="false" default="1">
        <cfargument name="blocksize" type="numeric" required="false" default=256>
        <cfscript>
        // Create a block cipher for Rijndael
        var cryptEngine = createObject("java", "org.bouncycastle.crypto.engines.RijndaelEngine").init(arguments.blocksize);
        // Create a Block Cipher in CBC mode
        var blockCipher = createObject("java", "org.bouncycastle.crypto.modes.CBCBlockCipher").init(cryptEngine);
        // Create Padding - Zero Byte Padding is apparently PHP compatible.
        var zbPadding = CreateObject('java', 'org.bouncycastle.crypto.paddings.ZeroBytePadding').init();
        // Create a JCE Cipher from the Block Cipher
        var cipher = createObject("java", "org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher").init(blockCipher,zbPadding);
        // Create the key params for the cipher    
        var binkey = binarydecode(arguments.key,"hex");
        var keyParams = createObject("java", "org.bouncycastle.crypto.params.KeyParameter").init(BinKey);
        var binIVSalt = Binarydecode(ivSalt,"hex");
        var ivParams = createObject("java", "org.bouncycastle.crypto.params.ParametersWithIV").init(keyParams, binIVSalt);
        cipher.init(javaCast("boolean",arguments.bEncrypt),ivParams);
        return cipher;
        </cfscript>
    </cffunction>
    <cffunction name="doEncrypt" access="public" returntype="string">
        <cfargument name="message" type="string" required="true">
        <cfargument name="key" type="string" required="true">
        <cfargument name="ivSalt" type="string" required="true">
        <cfscript>
        var cipher = createRijndaelBlockCipher(key=arguments.key,ivSalt=arguments.ivSalt);
        var byteMessage = arguments.message.getBytes();
        var outArray = getByteArray(cipher.getOutputSize(arrayLen(byteMessage)));
        var bufferLength = cipher.processBytes(byteMessage, 0, arrayLen(byteMessage), outArray, 0);
        var cipherText = cipher.doFinal(outArray,bufferLength);
        return toBase64(outArray);
        </cfscript>
    </cffunction>
    <cffunction name="doDecrypt" access="public" returntype="string">
        <cfargument name="message" type="string" required="true">
        <cfargument name="key" type="string" required="true">
        <cfargument name="ivSalt" type="string" required="true">
        <cfscript>
        var cipher = createRijndaelBlockCipher(key=arguments.key,ivSalt=arguments.ivSalt,bEncrypt=false);
        var byteMessage = toBinary(arguments.message);
        var outArray = getByteArray(cipher.getOutputSize(arrayLen(byteMessage)));
        var bufferLength = cipher.processBytes(byteMessage, 0, arrayLen(byteMessage), outArray, 0);
        var originalText = cipher.doFinal(outArray,bufferLength);
        return createObject("java", "java.lang.String").init(outArray);
        </cfscript>
    </cffunction>
    <cfscript>
    function getByteArray(someLength)
        byteClass = createObject("java", "java.lang.Byte").TYPE;
        return createObject("java","java.lang.reflect.Array").newInstance(byteClass, someLength);
    </cfscript>
    </cfcomponent>
    Thanks!,
    -Aaron

  • Multiple Error Messages CFB2 after hotfix installation

    Hi,
    I just installed the CFB2 Hotfix on Windows 7 pro 64 AND 32bit machines and now get a ton of startup errors in the error log. I have no idea what is causing this. Here is a small part of the error log. I have tried starting with the -clean option and still get the errors. It's approx. 900 lines of messages.
    Any way to remove the cause of these?
    Thanks,
    Doug
    !ENTRY org.eclipse.equinox.preferences 4 4 2011-07-20 14:01:23.928
    !MESSAGE Exception loading preferences from: .
    !STACK 0
    org.osgi.service.prefs.BackingStoreException: Unable to determine provisioning agent from location: file:\2fC:\2fUsers\2fDoug\2fAppData\2fLocal\2fTemp\2fI1306347801\2fWindows\2fp2\2f
        at org.eclipse.equinox.internal.p2.engine.ProfilePreferences.getAgent(ProfilePreferences.jav a:159)
        at org.eclipse.equinox.internal.p2.engine.ProfilePreferences.load(ProfilePreferences.java:24 0)
        at org.eclipse.core.internal.preferences.EclipsePreferences.create(EclipsePreferences.java:3 07)
        at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences. java:543)
        at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:669 )
        at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences. java:549)
        at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:669 )
        at org.eclipse.core.internal.preferences.EclipsePreferences.internalNode(EclipsePreferences. java:549)
        at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:669 )
        at org.eclipse.core.internal.preferences.RootPreferences.getNode(RootPreferences.java:106)
        at org.eclipse.core.internal.preferences.RootPreferences.node(RootPreferences.java:85)
        at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.getPreferenc es(AbstractRepositoryManager.java:499)
        at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.remember(Abs tractRepositoryManager.java:857)
        at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.stop(Abstrac tRepositoryManager.java:1052)
        at org.eclipse.equinox.internal.p2.core.ProvisioningAgent.unregisterService(ProvisioningAgen t.java:121)
        .................... cut .................
    !SESSION 2011-07-20 14:01:34.716 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_24
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Command-line arguments:  -os win32 -ws win32 -arch x86 -clean
    !ENTRY org.eclipse.equinox.p2.engine 4 4 2011-07-20 14:01:37.799
    !MESSAGE An error occurred while installing the items
    !SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2011-07-20 14:01:37.799
    !MESSAGE session context was:(profile=profile, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.adobe.ide.coldfusion.search 2.0.0.277745, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction).
    !SUBENTRY 1 org.eclipse.equinox.p2.touchpoint.eclipse 4 0 2011-07-20 14:01:37.799
    !MESSAGE The artifact file for osgi.bundle,com.adobe.ide.coldfusion.search,2.0.0.277745 was not found.
    ...... more .....
    !ENTRY org.eclipse.update.configurator 4 0 2011-07-20 14:01:38.686
    !MESSAGE Could not install bundle plugins/org.sat4j.pb_2.2.0.v20100429.jar   Bundle "org.sat4j.pb" version "2.2.0.v20100429" has already been installed from: reference:file:plugins/org.sat4j.pb_2.2.0.v20100429.jar
    !ENTRY org.eclipse.update.configurator 4 0 2011-07-20 14:01:38.687
    !MESSAGE Could not install bundle plugins/org.scriptaculous.1.8_1.8.0.00001.jar   Bundle "org.scriptaculous.1.8" version "1.8.0.00001" has already been installed from: reference:file:plugins/org.scriptaculous.1.8_1.8.0.00001.jar
    !ENTRY Extensions 1 0 2011-07-20 14:01:42.481
    !MESSAGE Dangling meta character '*' near index 0

    I just tried that on my 64-bit machine and get the following in my error.log. Note on the keybinding, I have NOT added or changed any keybindings, so don't know where that's coming from.
    !SESSION 2011-09-15 14:03:47.654 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_24
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Command-line arguments:  -os win32 -ws win32 -arch x86 -clean
    !ENTRY org.eclipse.jface 2 0 2011-09-15 14:05:08.069
    !MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
    !SUBENTRY 1 org.eclipse.jface 2 0 2011-09-15 14:05:08.069
    !MESSAGE A conflict occurred for ALT+CTRL+R:
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.ide.editor.cfml.context,,,user)
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.snippet.context,,,user)
    !ENTRY org.eclipse.osgi 2 1 2011-09-15 14:06:56.414
    !MESSAGE NLS unused message: CFMLKeysPreferencePage.0 in: com.adobe.ide.coldfusion.keyboard.preferences.messages
    !ENTRY org.eclipse.osgi 2 1 2011-09-15 14:06:56.415
    !MESSAGE NLS unused message: CFMLKeysPreferencePage.1 in: com.adobe.ide.coldfusion.keyboard.preferences.messages
    !ENTRY org.eclipse.osgi 2 1 2011-09-15 14:06:56.416
    !MESSAGE NLS unused message: CFMLKeysPreferencePage.4 in: com.adobe.ide.coldfusion.keyboard.preferences.messages
    !SESSION 2011-09-15 14:08:36.899 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_24
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Command-line arguments:  -os win32 -ws win32 -arch x86 -clean
    !ENTRY org.eclipse.jface 2 0 2011-09-15 14:08:41.807
    !MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
    !SUBENTRY 1 org.eclipse.jface 2 0 2011-09-15 14:08:41.807
    !MESSAGE A conflict occurred for ALT+CTRL+R:
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.snippet.context,,,user)
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.ide.editor.cfml.context,,,user)
    !SESSION 2011-09-16 13:43:24.117 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_24
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Command-line arguments:  -os win32 -ws win32 -arch x86 -clean
    !ENTRY org.eclipse.jface 2 0 2011-09-16 13:43:31.062
    !MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
    !SUBENTRY 1 org.eclipse.jface 2 0 2011-09-16 13:43:31.062
    !MESSAGE A conflict occurred for ALT+CTRL+R:
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.snippet.context,,,user)
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.ide.editor.cfml.context,,,user)
    !SESSION 2011-09-19 10:18:43.271 -----------------------------------------------
    eclipse.buildId=unknown
    java.version=1.6.0_24
    java.vendor=Sun Microsystems Inc.
    BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
    Command-line arguments:  -os win32 -ws win32 -arch x86 -clean
    !ENTRY org.eclipse.equinox.p2.engine 4 4 2011-09-19 10:18:55.798
    !MESSAGE An error occurred while committing the engine session for profile: profile.
    !SUBENTRY 1 org.eclipse.equinox.p2.touchpoint.eclipse 4 0 2011-09-19 10:18:55.798
    !MESSAGE
    !SUBENTRY 2 org.eclipse.equinox.p2.touchpoint.eclipse 4 0 2011-09-19 10:18:55.798
    !MESSAGE Error saving manipulator.
    !STACK 0
    java.lang.NullPointerException
        at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser.saveFwConfi g(EquinoxFwConfigFileParser.java:489)
        at org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxManipulatorImpl.save(EquinoxMa nipulatorImpl.java:407)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.save(LazyManipulator.j ava:96)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint.saveManipulator(Ecli pseTouchpoint.java:61)
        at org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint.commit(EclipseTouchp oint.java:137)
        at org.eclipse.equinox.internal.p2.engine.EngineSession.commit(EngineSession.java:123)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:91)
        at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.executePlan(Profil eSynchronizer.java:720)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.performAddRemove(P rofileSynchronizer.java:173)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.synchronize(Profil eSynchronizer.java:128)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.synchronize(Activator.java:4 19)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:176)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:7 83)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextIm pl.java:774)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:7 55)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManage r.java:561)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManage r.java:546)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java :459)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelMana ger.java:243)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManage r.java:440)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
    !ENTRY org.eclipse.jface 2 0 2011-09-19 10:19:16.671
    !MESSAGE Keybinding conflicts occurred.  They may interfere with normal accelerator operation.
    !SUBENTRY 1 org.eclipse.jface 2 0 2011-09-19 10:19:16.671
    !MESSAGE A conflict occurred for ALT+CTRL+R:
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.snippet.context,,,user)
    Binding(ALT+CTRL+R,
        ParameterizedCommand(Command(com.adobe.ide.coldfusion.shortcut.cfscript,Insert cfscript block,
            Insert cfscript block,
            Category(com.adobe.ide.coldfusion.commands,CFML Editor,null,true),
            com.adobe.ide.coldfusion.shortcut.handlers.CFScriptHandler,
            ,,true),null),
        cfscheme,
        com.adobe.ide.editor.cfml.context,,,user)
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.432
    !MESSAGE Category com.adobe.model.editor.views not found for view com.adobe.rds.client.core.views.DatabaseView.  This view added to 'Other' category.
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.432
    !MESSAGE Category com.aptana.ide.documentation not found for view com.aptana.ide.documentation.jquery.visualjquery.  This view added to 'Other' category.
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.432
    !MESSAGE Category com.aptana.ide.documentation not found for view com.aptana.ide.documentation.libraryname.sampleview.  This view added to 'Other' category.
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.447
    !MESSAGE Category com.adobe.model.editor.views not found for view com.adobe.rds.client.core.views.DatabaseView.  This view added to 'Other' category.
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.447
    !MESSAGE Category com.aptana.ide.documentation not found for view com.aptana.ide.documentation.jquery.visualjquery.  This view added to 'Other' category.
    !ENTRY org.eclipse.ui 4 4 2011-09-19 10:20:08.447
    !MESSAGE Category com.aptana.ide.documentation not found for view com.aptana.ide.documentation.libraryname.sampleview.  This view added to 'Other' category.

  • Form Validation - Error Trapping Not Working.

    Hi,
    I'm a Coldfusion beginner desperately trying to get along with some database work for my site and have come across an annoying error that I just can't solve! I'm sure I'm missing something really basic - I just can't for the life of me figure out what it is!
    Basically, I have a form for users to sign-up. I have introduced several cfif statements and a basic CAPTCHA system to trap errors. If any errors are submitted then they should be displayed in a cfwindow. This process works fine until I specify the form action - after which it is completely ignored and the form contents are written to the database without any validation taking place. Even without specifying the form action the errors won't show in Internet Explorer.
    I really would appreciate any help - it's driving me crazy!
    Thanks in advance,
    Tom.
    Here is the code:
    <cfinclude template="CFIDE/headertemplate.cfm">
    <!-- RANDOM NUMBER GENERATOR  FOR CAPTCHA -->
    <cffunction name="makerandom" returnType="string" output="false">
    <cfset var chars = "23456789ABCDEFGHJKMNPQRSTW">
    <cfset var length = randRange(4,6)>
    <cfset var result = "">
    <cfset var i = "">
    <cfset var char = "">
    <cfscript>
         for(i=1; i <= length; i++) {
              char = mid(chars, randRange(1, len(chars)),1);
              result&=char;
    </cfscript>
    <cfreturn result>
    </cffunction>
    <!-- ERROR TRAPPING -->
      <cfset showForm = true>
      <cfparam name="form.email" default="">
      <cfparam name="form.artistname" default="">
      <cfparam name="form.city" default="">
      <cfparam name="form.postcode" default="">
      <cfparam name="form.pass" default="">
      <cfparam name="form.captcha" default="">
      <cfparam name="form.captchahash" default="">
      <cfparam name="form.terms" default="">
    <cfif isDefined("form.send")>
          <cfset errors = "">
    <cfif len (form.email) LT '4'>
    <cfset errors = errors & "You must include a valid e-mail address.<br />">
    </cfif>
    <cfif find('.',form.email) is '0'>
    <cfset errors = errors & "Your E-mail features no . symbol.<br />">
    </cfif>
    <cfif find('@',form.email) is '0'>
    <cfset errors = errors & "Your E-mail features no @ symbol.<br />">
    </cfif>
    <cfif not len(trim(form.artistname))>
    <cfset errors = errors & "You must include your name.<br />">
    </cfif>
    <cfif not len(trim(form.city))>
    <cfset errors = errors & "You must include your city.<br />">
    </cfif>
    <cfif not len(trim(form.postcode))>
    <cfset errors = errors & "You must include your postcode.<br />">
    </cfif>
    <cfif not len(trim(form.pass))>
    <cfset errors = errors & "You must specify a password.<br />">
    </cfif>
    <cfif len(form.pass) LT '6'>
    <cfset errors = errors & "Password must be between 6 and 10 characters.<br />">
    </cfif>
    <cfif hash(ucase(form.captcha)) neq form.captchahash>
    <cfset errors = errors & "You did not enter the correct Captcha text.<br />">
    </cfif>
    <cfif not len(trim(form.terms))>
    <cfset errors = errors & "You must agree to our Terms and Conditions.<br />">
    </cfif>
    <cfif errors is "">
    <cfset showForm = false>
    </cfif>
    </cfif>
    <cfif showForm>
    <cfset captcha = makerandom()>
    <cfset captchahash = hash(captcha)>
    <cfoutput>
    <h1>Artist Sign-Up</h1>
    <p>Your details are required for sign-up. Mandatory fields are indicated with a *.</p><br/><br/>
    <cfif isDefined("errors")>
    <cfwindow name="formerrors"
    title="Form Errors"
    width="450"
    height="250"
    modal="true"
    initshow="true"
    center="true"
    closable="true"
    minheight="200"
    minwidth="200">
    <center><b>Please correct the following errors and re-submit the form:</b><br /><br/>#errors#
    <br/><a href="javascript:ColdFusion.Window.hide('formerrors');">Close Window</a>
    </center>
    <br/></cfwindow>
    </cfif>
    <!-- FORM CONTENTS -->
    <cfform action="artist_insert.cfm" method="post">
    <table class="signup">
    <tr>
    <td class="noborder" width="200">
      <label for="email">E-Mail Address*:</label>
    </td>
    <td class="noborder" width="156">
    <input type="text" name="email" class="textbox" value="<cfoutput><cfif IsDefined("URL.email")>#URL.email#<cfelse></cfif></cfoutput>"/>
    </td>
    <td class="noborder">
    <cftooltip autoDismissDelay="9999" tooltip="This needs to be a valid e-mail so that<br/> promoters can get in contact with you. <br/>If several people will be using this<br/> account then try and make it a shared<br/> address."><img src="pics/i.jpg" alt="info" border="1" /></cftooltip>
    </td>
    </tr>
    <tr>
    <td class="noborder" width="200">
      Your Password* (6 to 10 chars.):
    </td>
    <td class="noborder">
    <input type="password" class="textbox" name="pass" maxlength="10"/>
    </td>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder" >
    Artist/Band Name*:
    </td>
    <td class="noborder">
    <input type="text" class="textbox" name="artistname" />
    </td>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder">
    City*:
    </td>
    <td class="noborder">
    <input type="text" class="textbox" name="city" />
    </td>
    <td class="noborder">
    <cftooltip autoDismissDelay="9999" tooltip="Entering your locational details enables Gig<br/>Digger to find the events and promoters<br/>in your area. Try specifying a well known<br/>city nearby for the best results."><img src="pics/i.jpg" alt="info" border="1" /></cftooltip>
    </td>
    </tr>
    <tr>
    <td class="noborder">
    Postcode*:
    </td>
    <td class="noborder">
    <input type="text" class="textbox" name="postcode" maxlength="8"/>
    </td>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder">
    Your Contact Number:
    </td>
    <td class="noborder">
    <input type="text" class="textbox" name="contact" maxlength="14"/>
    </td>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <tr>
    <td class="noborder" valign="top" width="200">Please enter the CAPTCHA text in the box below*: </td>
    <td class="noborder" align="left">
    <center><cfimage action="captcha" width="156" height="50" text="#captcha#" border="1">
    <input type="hidden" name="captchaHash" value="#captchaHash#"></center>
    </td>
    <td class="noborder" valign="top">
    <cftooltip autoDismissDelay="9999" tooltip="This is here to ensure that<br/>you're human. It stops abuse <br/>of the site and makes it a safer <br/>place for us all."><img src="pics/i.jpg" alt="info" border="1" /></cftooltip>
    </td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    <td class="noborder" align="right"><font size="-2"><b><a href="javascript:location.reload(false)">Refresh Page</a></b></font>
    </td>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder"></td>
    <td class="noborder"><input type="text" name="captcha" class="textbox"></td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder" width="170">Please check this box to confirm that you agree<br/> to our <b><a href="termsandconditions.cfm">Terms and Conditions</a></b>*.
    </td>
    <td class="noborder">
    <input type="checkbox" class="textbox" name="terms" /></td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    </tr>
    <tr>
    <td class="noborder">
    </td>
    <td class="noborder" align="center">
    <cfinput type="image" src="pics/submit.png" name="send" value="Submit" validate="submitonce" border="1">
    </td>
    </tr>
    </table>
    </cfform><br/>
    </cfoutput>
    <cfelse>
    <cfoutput>
    Thank you for submitting your details, #form.name#. You may now log in with your e-mail and password.
    </cfoutput>
    </cfif>
    </td>
    </tr>
    </table>
    <!-- FOOTER START -->
    </body>
    </html>
    ARTIST INSERT PAGE - artist_insert.cfm
    <cfquery datasource="071907cs07to">
    INSERT INTO Artist(    Nsudate,
                        Nemail,
                        Npass,
                        Nname,
                        Ncity,
                        Npostcode,
                        Ncnumber
    VALUES(    ( #Now()# ),
            '#Trim(form.email)#',
            '#Trim(form.pass)#',
            '#Trim(form.artistname)#',
            '#Trim(form.city)#',
            '#Trim(form.postcode)#',
            '#Trim(form.contact)#'
    </cfquery>

    In addition to BreakawayPaul's answer.
    You are making it very difficult to troubleshoot your if/else logic because your code includes all the display stuff.  Since you're a self proclaimed beginner, you might want to try another approach.
    Save your old page and start a new one from scratch.  Solve all your logic problems first.  Display what you need to see with the cfdump tag.
    Here are some hints to make the whole thing easier.
    1.  In your cfform, use the validate and required attributes to catch errors earlier.
    2. You don't have to cfparam every form field.  The form has either been submitted to it hasn't.  If it has, all the fields will be there with the possible exception of checkboxes or radio button, if nothing was selected.

Maybe you are looking for

  • String index out of bounds?

    hi, i am writing a java program which reads in a file and then error checks it, once its done this it will output it to another file. It was working fine until i tried writing another method, now it keeps telling there is a string index out of bounds

  • Upgrading nokia 5230 to Firmware 2.0?

    I recently got a new Nokia phone! It has the firmware for v.12.8.095 When I run the Nokia Software updater it tells me that my firmware is up to date.  How can I upgrade to v 2.0?

  • Status Bar disappear and Window autoresize on certain website

    I have a problem with Firefox 5 (it was autoupdate from 4), the status bar sometime appear sometime disappear (it just appear on this Ask a New Question web page. I could not bring it back as I would like to anytime. On certain website the windows si

  • Is there a way to get iTunes to find tracks it can't locate on its own?

    I have my iTunes music folder on an external drive, and my computer, for some reason, couldn't locate the songs on there for a few days. Now, it's back to normal, but many of the tracks have the little exclamation mark next to them, and when I try to

  • Iphone 4s 5.0.1 location services don't work (broken)

    Hello, I have an iPhone 4S that orginally came with iOS 5. Initially, the Location Services (GPS) functions were working fine as I played with some apps using them. I think I turned the Location Serivces off to save battery and updated to iOS 5.0.1 d