Issue with implicit accessors
Our development team recently discovered that we are getting multiple errors when using implicit get accessor (person.firstName) instead of generated get accessor (person.getFirstName()). Here are instructions of how to reproduce the error:
1. Create a new ColdFusion application with the following files:
Application.cfc:
<cfcomponent output="false">
<cfset this.invokeImplicitAccessor = true />
</cfcomponent>
Person.cfc:
component accessors=true {
property firstName;
}
index.cfm:
<cfscript>
local.person = new Person();
local.person.firstName = "Zachary";
for( local.i = 0; local.i < 1000; local.i++ ) {
local j = local.person.firstName;
}
</cfscript>
index2.cfm:
<cfscript>
local.person = new Person();
local.person.firstName = "Zachary";
for( local.i = 0; local.i < 1000; local.i++ ) {
local j = local.person.firstName;
}
</cfscript>
2. Test the index.cfm with JMeter, use 2000 threads, 10s Ram-Up Period and Loop count 1 (test plan: https://pastebin.com/nBtpL4zP)
3. In our tests the page always fails with the same error message:
Element PERSON.FIRSTNAME is undefined in LOCAL.
4. The error % we are getting with the above settings usually falls somewhere between 8 to 10 %, meaning that 160 to 200 requests out of >2000 requests fails.
5. When index2.cfm gets tested with the same settings, we don't get any errors
Here are some details about the test environment:
OS: Windows Server 2016 Standard
ColdFusion: Adobe ColdFusion 2018 Release
JMeter 5.0 (https://jmeter.apache.org/download_jmeter.cgi)
Does anyone have any idea why this is happening? Is there some ColdFusion settings we could tweak? The above example application is >very minimal, and we are not doing anything special, so I don't see any reasons why implicit accessors should fail, especially when >generated accessors seems to pass the same test without any issues.
We appreciate any help or suggestions of what to try to get the >implicit accessors working.
br,
Antti Koskenalho
