Coldfusion, предоставленный вами символ [method_name] не является функцией - PullRequest
4 голосов
/ 07 октября 2011

Запуск CF 9,0,1,274733

У меня есть собственный CFC DAO с методом getGamesBetTypesID ().

Метод неявно генерируется / синтезируется CF из следующегосвойство:

<cfproperty name="gamesBetTypesID" type="numeric" />

Переменная по умолчанию определяется следующим образом:

<cfset VARIABLES.gamesBetTypesID = 0 />

Кроме этого нет других переменных VARIABLES, vars, LOCAL, ARGUMENTS или методов, называемых getGamesBetTypesID.Все переменные CFC и функции имеют правильную область видимости.

Этот метод save () вызывается тысячи раз, но следующая ошибка выдается случайным образом и всего несколько раз.

Detail: The symbol you provided getGamesBetTypesID is not the name of a function. 
Message: Entity has incorrect type for being called as a function. 

Вотметод save ():

<cffunction name="save" access="public" returntype="void" output="false">

    <cfif getGamesBetTypesID() eq 0 or getGamesBetTypesID() eq "">
        <cfset create() />
    <cfelse>
        <cfset update() />
    </cfif>

</cffunction>

Когда выдается ошибка, я записываю дамп метаданных CFC, используя getMetaData (gamesBetTypesObj).Согласно метаданным, функция getGamesBetTypesID существует.

Кто-нибудь еще сталкивался с этим раньше?Я читал, что это может произойти из-за коллизий имен и области видимости, которых у меня нет.

Заранее спасибо.

1 Ответ

2 голосов
/ 17 октября 2011

После публикации вопроса выше я удалил <cfproperty name="gamesBetTypesID" type="numeric" /> и добавил явный метод получения и установки для VARIABLES.gamesBetTypesID.

<cffunction name="getGamesBetTypesID" output="false" access="public" returntype="numeric">
    <cfreturn VARIABLES.gamesBetTypesID />
</cffunction>

<cffunction name="setGamesBetTypesID" output="false" access="public" returntype="void">
    <cfargument name="gamesBetTypesID" required="true" type="numeric" />
    <cfset VARIABLES.gamesBetTypesID = ARGUMENTS.gamesBetTypesID />
</cffunction>

Этот код запускался в производство в течение недели, включая выходные, что является нашим загруженным периодом.За последние 7 дней не было сделано ни одного исключения.Ранее в загруженный день создавалось до 15 исключений.

Это наводит меня на мысль, что существует ошибка при создании / использовании неявных средств доступа в виде <CFPROPERTY>, которая появляется только в определенных ситуациях.,Я собираюсь зарегистрировать ошибку с Adobe

Я буду обновлять, если будет достигнут какой-либо прогресс.

...