CFThread Аргументы против Атрибутов

В течение многих лет я использовал следующий код в нескольких средах ColdFusion:

<cfthread 
    action                  = "run" 
    name                    = "#Local.cachedFilename#"
    src                     = "#Arguments.src#"
>

    <!--- Process  image --->
    <cfset Local.objImage = This.processImage(
        src                     = Arguments.src
    ) />

</cfthread>

Я пришел, чтобы повторно использовать мой компонент в другой среде сегодня, и впервые я столкнулся с ошибкой, что Arguments.src не существует внутри потока.

Немного Googling вернул ответ, я должен был использовать область атрибутов внутри потока... так что вызов ProcessImage использует Attributes.src вместо Arguments.src,

Это отлично работает. Все хорошо. Но я в замешательстве.
Я написал этот код для Railo. Работало нормально. Я перенес его на CF10, он работал нормально. Я запустил его на CF11. Работало нормально. Первый раз, когда я сталкиваюсь с ошибкой, на конкретной коробке, также работает CF10.

Итак, мой вопрос - было ли где-то обновление или есть какой-то особый набор обстоятельств, которые позволили бы мне использовать область действия аргументов внутри CFThread? По сути, если я должен использовать область действия атрибутов, как у меня это работало годами?!

0 ответов

CFThread - это тег, а не вызов функции. Следовательно, он attributesне arguments. Похоже, что Рейло / Люси почему-то неправильно делают attributes доступен в argumentsобъем. Поведение Adobe правильное, ИМО, и вам просто повезло в прошлом на Railo.

Другие вопросы по тегам