Took me a while to understand it but I actually found a new difference
in the way Velocity deal with variables set inside a macro.

In 1.7 by default (i.e. without "velocimacro.context.localscope")
variables set in a macro end up in both the global context and a local
one and when accessing this variable later in the macro the local
value is used retrieved (all this happen in ProxyVMContext).

This means that if the macro also calls some method that update the
global VelocityContext it won't have any effect on the following macro
code because that change will be hidden by the local context. While I
did not debugged on Velocity 2.2-SNAPSHOT , the result I get suggest
that there is no local context in macros anymore or at least it's not
used the same way in this use case.

The use case in which I noticed this behavior change it is a macro
which initialization some variable, calls an API which execute another
Velocity template (a kind of include in other words) and then use the
previously set variable. What happen after upgrade is that the
variable is "broken" by the other template (because the template use a
variable with the same name for totally unrelated reasons).

It does not affect XWiki Standard much (that's why I only found it
now) and I'm not sure if it used to work only by luck or if whoever
wrote that use case really was counting on macro variables to be
"protected" but it might have a huge effect on some extensions.

How do you feel about this change and do you want me to create a jira
issue about this behavior change ?

On Thu, Jan 9, 2020 at 2:50 PM Thomas Mortagne
<thomas.morta...@xwiki.com> wrote:
>
> False alarm actually I think, sorry for the noise.
>
> On Thu, Jan 9, 2020 at 2:21 PM Thomas Mortagne
> <thomas.morta...@xwiki.com> wrote:
> >
> > Unfortunately it seems the fix is not complete (commented on the Jira 
> > issue).
> >
> > On Tue, Jan 7, 2020 at 3:55 PM Thomas Mortagne
> > <thomas.morta...@xwiki.com> wrote:
> > >
> > > So that one was on me after all.
> > >
> > > XWiki is a big beast and I might have missed some edge case but let's
> > > say +1 for a RC.
> > >
> > > On Tue, Jan 7, 2020 at 11:23 AM Thomas Mortagne
> > > <thomas.morta...@xwiki.com> wrote:
> > > >
> > > > There is one more thing that I want to debug today (hopefully answer
> > > > before 6pm GMT+1) to check if it's a side effect of this bug, another
> > > > regression or a mistake I made when I upgraded since a lot of APIs
> > > > changed (it's not an obvious error, just a slight difference in the
> > > > result but there are quite a few layers of abstractions to debug
> > > > between the result and the Velocity engine).
> > > >
> > > > On Tue, Jan 7, 2020 at 10:56 AM Claude Brisson
> > > > <cla...@renegat.net.invalid> wrote:
> > > > >
> > > > > Fixed. Thanks for the report.
> > > > >
> > > > > Thomas, do you think you may have any other subtle xwiki bug to report
> > > > > before I push out the next RC?
> > > > >
> > > > > On 20-01-03 12 h 31, Thomas Mortagne wrote:
> > > > > > Hi sorry me again,
> > > > > >
> > > > > > I just hit https://issues.apache.org/jira/browse/VELOCITY-924.
> > > > > >
> > > > > > On Wed, Jan 1, 2020 at 11:12 PM Claude Brisson
> > > > > > <cla...@renegat.net.invalid> wrote:
> > > > > >> The test build of Velocity Engine 2.2 RC4 is available.
> > > > > >>
> > > > > >> No determination as to the quality ('alpha,' 'beta,' or 'GA') of
> > > > > >> Velocity Engine 2.1 RC3 has been made, and at this time it is 
> > > > > >> simply a
> > > > > >> "test build". We welcome any comments you may have, and will take 
> > > > > >> all
> > > > > >> feedback into account if a quality vote is called for this build.
> > > > > >>
> > > > > >> Release notes:
> > > > > >>
> > > > > >> *
> > > > > >> https://dist.apache.org/repos/dist/dev/velocity/velocity-engine/2.2/release-notes.html
> > > > > >>
> > > > > >> Distribution:
> > > > > >>
> > > > > >>    * 
> > > > > >> https://dist.apache.org/repos/dist/dev/velocity/velocity-engine/2.2/
> > > > > >>
> > > > > >> Maven 2 staging repository:
> > > > > >>
> > > > > >>    *
> > > > > >> https://repository.apache.org/content/repositories/orgapachevelocity-1032/
> > > > > >>
> > > > > >> Documentation:
> > > > > >>
> > > > > >> * https://velocity.apache.org/engine/2.2/
> > > > > >>
> > > > > >> Sources:
> > > > > >>
> > > > > >>    * https://svn.apache.org/repos/asf/velocity/engine/tags/2.2/
> > > > > >>
> > > > > >> Release Candidates History:
> > > > > >>
> > > > > >>    * RC1 Initial RC
> > > > > >>
> > > > > >>    * RC2
> > > > > >>    - added BigInteger and BigDecimal implicit conversions
> > > > > >>    - [VELOCITY-923] fixed a parser regression for `$foo||`
> > > > > >>    - [VELOCITY-904] fixed two corner case bugs for the
> > > > > >> velocimacro.arguments.preserve_literals backward compatibility flag
> > > > > >>    - fixed engine and dependency versions in README and mention the
> > > > > >> parser customization feature in the *building* section
> > > > > >>    - nicified README links
> > > > > >>    - upgraded surfire plugin version from 2.19.1 to 2.22.1
> > > > > >>    - upgraded maven-jar-plugin from 3.1.1 to 3.2.2
> > > > > >>    - added version 1.2 for extra-enforcer-rules
> > > > > >>    - upgraded maven-javadoc-plugin from 3.1.0 to 3.1.1
> > > > > >>    - upgraded findbugs-maven-plugin from 3.0.4 to 3.0.5
> > > > > >>    - upgraded maven-release-plugin from *unspecified* to 3.0.0-M1
> > > > > >>    - added a new templatized static class
> > > > > >> org.apache.velocity.runtime.VelocityEngineVersion.java
> > > > > >>    - use the File Separator control character to mark the end of 
> > > > > >> stream
> > > > > >> for the parser (instead of the zero-width space char)
> > > > > >>    - reviewed packaging of engine examples (refreshed content, 
> > > > > >> plus made
> > > > > >> them as a standalone zip file with readme, shell scripts, 
> > > > > >> dependencies
> > > > > >> and examples sources rather than a meaningless standalone pom next 
> > > > > >> to a
> > > > > >> jar without explanations...)
> > > > > >>
> > > > > >> * RC3
> > > > > >>    - [VELOCITY-904] fixed yet another corner case bugs for the
> > > > > >> velocimacro.arguments.preserve_literals backward compatibility flag
> > > > > >>    - upgraded SLF4J from 1..7.28 to 1.7.30
> > > > > >>
> > > > > >> * RC4
> > > > > >>    - [VELOCITY-904] fixed a regression introduced in RC3
> > > > > >>
> > > > > >>
> > > > > >>     --
> > > > > >>     Claude
> > > > > >>
> > > > > >>
> > > > > >>
> > > > > >> ---------------------------------------------------------------------
> > > > > >> To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
> > > > > >> For additional commands, e-mail: dev-h...@velocity.apache.org
> > > > > >>
> > > > > >
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
> > > > > For additional commands, e-mail: dev-h...@velocity.apache.org
> > > > >
> > > >
> > > >
> > > > --
> > > > Thomas Mortagne
> > >
> > >
> > >
> > > --
> > > Thomas Mortagne
> >
> >
> >
> > --
> > Thomas Mortagne
>
>
>
> --
> Thomas Mortagne



-- 
Thomas Mortagne

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to