Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6388921
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T03:20:24+00:00 2026-05-25T03:20:24+00:00

Key points before reading further All variables are properly var’ed (you’ll have to trust

  • 0

Key points before reading further

  1. All variables are properly var’ed (you’ll have to trust me)
  2. Scopes are not being reset while these long-running processes are happening
  3. When dumping the metadata for the supposedly missing/invalid method, I get the right information
  4. There are only two places where the name of this method are referenced in the application. Once where it’s defined, and once were the method is called in the code below.

I have a very strange intermittent error that I can’t seem to track down. Here’s the background (these are severely trimmed down to simplify for posting).

FeedService.cfc:

<cfcomponent output="false" extends="FeedDAO">

    <cffunction name="processXmlFile" access="public" output="false" returntype="struct">
        <cfset Var local = StructNew() />

/***************************************
THE VARIABLES ARE ALL VAR'D - PROMISE!!!
Lots of other stuff goes on in here to get the ultimate set of XML nodes to loop through
*****************************************/

        <cfloop from="1" to="#ArrayLen(local.arrChannels)#" index="local.currentChannelItem">
            ... Lots of XML parsing and stuff and things going on here ...

            <cfset LOCAL.invCheck = checkCustomerListing(
                Acct_ID = local.invStruct.AcctID
                , CustomerListingID = local.invStruct.CustomerListingID
            ) />

            ... Lots more stuff going on here ...

        </cfloop>
    </cffunction>
</cfcomponent>

FeedDAO:

<cfcomponent output="false">

    <cffunction name="checkCustomerListing" access="public" output="false" returntype="numeric" hint="Returns the numeric inventory ID for an existing inventory listing, or 0 if the listing doesn't exist.">
        <cfargument name="Acct_ID" type="numeric" required="true" hint="" />
        <cfargument name="CustomerListingID" type="string" required="true" hint="" />
        <cfset var rs = "">

        <cfquery name="rs" datasource="#Variables.DSNs.Primary#">
            SELECT ID FROM TheTable
            WHERE
                Acct_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Arguments.Acct_ID#" />
                AND Customer_Listing_ID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Arguments.CustomerListingID#" />
        </cfquery>

        <cfif rs.RecordCount>
            <cfreturn rs.Inv_ID />
        <cfelse>
            <cfreturn 0 />
        </cfif>

    </cffunction>

</cfcomponent>  

I’m calling the initial function like so:

<cfset processStruct = Server.FeedService.processXmlFile(filePath) />

So, when a feed gets submitted to the processXMLFile function, it looks through all of the items in the file. A feed file may have 10, 100, or even 1000 entries. I get occasional error messages like this while a file is getting processed:

[struct]
Detail: The symbol you provided checkCustomerListing is not the name of a function.
Message: Entity has incorrect type for being called as a function.
StackTrace: coldfusion.runtime.CfJspPage$UninvocableEntityException: Entity has incorrect type for being called as a function.
    at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2441)
    at coldfusion.runtime.SuperScope.invoke(SuperScope.java:18)
    at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222)

More stack dump information

    Type: Application
    symbolName: checkCustomerListing

    [object of coldfusion.runtime.CfJspPage$UninvocableEntityException]
    Class Name: coldfusion.runtime.CfJspPage$UninvocableEntityException
    Fields: 
        java.lang.String symbolName: checkCustomerListing
    Parent Class: [object of coldfusion.runtime.ApplicationException]
        Class Name: coldfusion.runtime.ApplicationException
        Parent Class: [object of coldfusion.runtime.NeoException]
            Class Name: coldfusion.runtime.NeoException
            Methods:  
                findAdvancedCFTarget(coldfusion.runtime.AdvancedCFException, java.lang.String[]) returns int 
                findCustomTarget(coldfusion.runtime.CustomException, java.lang.String[]) returns int 
                findThrowableTarget(java.lang.Throwable, java.lang.String[]) returns int 
                getDetail() returns java.lang.String 
                getLocalizedMessage() returns java.lang.String 
                getMessage() returns java.lang.String 
                getRootCause() returns java.lang.Throwable 
                getString(java.lang.Throwable, java.lang.String, java.util.Locale) returns java.lang.String 
                getType() returns java.lang.String 
                setLocale(java.util.Locale) returns void 
                unwrap(java.lang.Throwable) returns java.lang.Throwable
            Parent Class: [object of java.lang.RuntimeException]
                Class Name: java.lang.RuntimeException
                Parent Class: [object of java.lang.Exception]
                    Class Name: java.lang.Exception
                    Parent Class: [object of java.lang.Throwable]
                        Class Name: java.lang.Throwable
                        Methods:  
                            fillInStackTrace() returns java.lang.Throwable 
                            getCause() returns java.lang.Throwable 
                            getLocalizedMessage() returns java.lang.String 
                            getMessage() returns java.lang.String 
                            getStackTrace() returns java.lang.StackTraceElement[] 
                            initCause(java.lang.Throwable) returns java.lang.Throwable 
                            printStackTrace(java.io.PrintWriter) returns void 
                            printStackTrace(java.io.PrintStream) returns void 
                            printStackTrace() returns void 
                            setStackTrace(java.lang.StackTraceElement[]) returns void 
                            toString() returns java.lang.String

I may get one error in 1000 entries, or I may get a small batch of errors at one time, and the rest of the feed processes just fine (due to some try/catch logic to prevent the entire thing from crapping out). At one point, the checkCustomerListing was in a completely different Server scoped object, and I never had a problem. I moved it into the FeedDAO and started calling it via the Super scope, and that’s when these intermittent errors began.

UPDATE: I have everything properly var’ed, I just chopped it all out for the sake of brevity.

UPDATE AGAIN: Changed code sample comments to make it clear that there is a lot of stuff going on before the first loop begins, including setting all LOCAL variables that will be used in the loop.

More Code Information:
I should note that there are only two places in our entire application (thousands upon thousands of lines of code) where the string ‘checkCustomerListing’ exists. One is where the function is called, and two is where the function is declared. There are no other instances of the string checkCustomerListing anywhere.

Update: 6 September, 2011

I added some additional error checking to see if I could find out what the app thought checkCustomerListing was (thanks Adam and Ryan). Here’s my new try/catch statement:

<cfcatch type="any">
    <cfset local.tmpError.cfcatch = cfcatch>

    <cfif isDefined("checkCustomerListing")>
        <cfset local.tmpError.customerListing = checkCustomerListing />
        <cfset local.tmpError.customerListingMeta = getMetaData(checkCustomerListing) />
    <cfelse>
        <cfset local.tmpError.customerListing = "Checkcustomerlisting is not defined" />
    </cfif>

    <cfset Server.Utilities.Errors.emailCaughtError(local.tmpError)>

</cfcatch>

So I got an error this morning, and in the email I received, there is no customerListing node in the dump, but there is a meta node:

CUSTOMERLISTINGMETA:  
    [struct]
    ACCESS: public
    HINT: Returns the numeric inventory ID for an existing inventory listing, or 0 if the listing doesn't exist.
    NAME: checkCustomerListing
    OUTPUT: false
    PARAMETERS:  
        [array]
        1) [struct]
            HINT: [empty string]
            NAME: Acct_ID
            REQUIRED: true
            TYPE: numeric 
        2) [struct]
            HINT: [empty string]
            NAME: CustomerListingID
            REQUIRED: true
            TYPE: string 
    RETURNTYPE: numeric

All of that meta information is exactly correct… so if it can find the metadata for the function, why can’t it find the function itself?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T03:20:24+00:00Added an answer on May 25, 2026 at 3:20 am

    Why are you doing super.checkCustomerListing? You would only do that if you overrode the function in your service and wanted to run the ‘parent’. Just call checkCustomerListing().

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a User table which has a PrivilegeId foreign key points to a
I have a table with one field that can point to a foreign key
The key event is not listened by my Flex app. Since it is really
I have a table, called Level. id | level | points(minimum) ------------------------- 1 |
I have a database table of all zipcodes in the US that includes city,state,latitude
As far as I know the key points to migrate an existing database to
I've not worked with oAuth before but now I'm building a web app which
I've never had this problem before, I'm at a total loss. I have a
I have a dictionary that goes like this: typedef struct dictNode { int key;
At what point is a DEFERRED / DEFERRABLE / IMMEDIATE unique / primary key

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.