RendererEncapsulator passes view-variables to "next" rendered view


hey luis!

i'm not sure if this is a bug, but i thought i give some feedback anyway ...

i have been using cb6 for a few weeks now (in development) - and one of the first changes i noticed was the new "behaviour" of the renderer.
we used to local-scope all our view-variables, which doesn't work anymore (at least not the way we did it) - because we just declared it once and then used the variables without explicitly calling the local-sope anymore. those variables now end up in "variables.local" - which is not an official scope (not yet .

so with cb6 and the rendererEncapsulator.cfc i thought it would be the easiest way to just put everyting directly into the variables-scope. it's encapsulated, right? but then I discovered by chance that variables which are set within a view (A), are visible (and therefore potentially accessible by reference) by views, which are rendered within the above view (A).

at the moment, i assume that this is not really a problem, since i wouldn't set a struct key (or append to an array) without declaring the struct (or array) beforehand. this would "decouple" the reference and everything is just fine. but anyway, i'm not sure if this could lead to some kind of race conditions or whatever?

if this behaviour is not intentional , it could even easily be solved by passing the renderer (instead of variables) to the customtag - and retrieve the renderer's variables by method-call (see screenshots below).

i would be pleased about some feedback ...

and by the way: if it somehow were possible to get our beloved local-scope back in place, we would really appreciate that. otherwise, the cb6-migration will be a hell of work

greetings from basel


Brad Wood


Roman Knecht


Fix versions