In PR #337, a change was introduced which overwrites the root of the OgnlContext. This change does not seem to match the description of the PR/entry in the changelog in that the root of the provided OgnlContext is not not only replaced with the root object when it is null, but rather always. I'm not sure this was the intended effect?
We implement an ObjectMethodAccessor as a method on a List object, that takes as argument a lambda expression :[ ... ]. That expression is then evaluated on each of the entries in the list, which are passed as root to the Ognl.getValue() method. The root of the OgnlContext we pass contains other properties that we can access inside of the lambda as #root.X, but this is now replaced with the list item instead by using the result of addDefaultContext as the context for the rest of the call. Now it tries to access the properties on the list items (root argument of getValue) in the lambda instead of on the root of the context we pass, resulting in an exception.
