何年もの間、複数の ColdFusion 環境で次のコードを使用してきました。
<cfthread
action = "run"
name = "#Local.cachedFilename#"
src = "#Arguments.src#"
>
<!--- Process image --->
<cfset Local.objImage = This.processImage(
src = Arguments.src
) />
</cfthread>
今日、別の環境でコンポーネントを再利用するようになりましたがArguments.src、スレッド内に存在しないエラーに初めて遭遇しました。
少しグーグルで答えが返されました。スレッド内で属性スコープを使用する必要があります...したがって、 ProcessImage 呼び出しは のAttributes.src代わりにを使用しArguments.srcます。
これはうまくいきます。すべては順調です。しかし、私は混乱しています。
このコードは Railo 用に書きました。うまくいきました。CF10に移植したところ、問題なく動作しました。CF11で動かしました。うまくいきました。初めてエラーに遭遇したのは、CF10 を実行している特定のボックスでした。
だから私の質問は - CFThread内で引数スコープを使用できるようにする更新がどこかにあったのか、それとも特定の状況のセットがあるのか? 基本的に、属性スコープを使用することになっている場合、これが何年もうまく機能していたのはどうしてですか?!