The scenario, in which I lose access, is as follows:
a.cfc injected with b.cfc
I have another CFC, called c.cfc, which has an implicit getter & setter for setting & getting a.cfc. By the way, for implicit [accessors=true, cfproperty etc ] getters & setters, I set in the constructor.
I then call a method in c.cfc from a CF page template. Something, like c.HelloWorld()...
c.cfc then makes a method call like getA().Foo() from within HelloWorld()...
Inside the method a.Foo(), there is another call to getB().Bar()
Only in Railo/Lucee, do I get an error [ACF is fine]:
Component [conversionService] has no accessible Member with name [DATABASE2SERVICE]
Then a bit more detail:
string Component [conversionService] has no accessible Member with name [DATABASE2SERVICE] at lucee.runtime.ComponentScopeShadow.get(ComponentScopeShadow.java:127):127 at com.services.conversionservice_cfc$cf.udfCall1(C:\domains\establishmindfulness.com\wwwroot\com\services\conversionService.cfc:42):42 at ...
So, a recap:
CF page -> c.HelloWorld() [implicit A setter & getter] -> getA.Foo() [explicit B setter & getter] -> getB.Bar()
Now, the really bizarre thing, is that if I call a.Foo() from a CF page template, everything works fine. It is only when I go via an intermediary. [c.HelloWorld()]
One other piece of information:
The method call getA().Foo() from within c.HelloWorld() is made from inside a cfsavecontent tag.
I wonder whether 'cfsavecontent' is causing a problem, because I have other scenarios, just like this one, that work in Lucee/Railo [calling an injected CFC via an intermediary, but not from within cfsavecontent]