[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025402#comment-17025402 ] Thomas Mortagne commented on VELOCITY-926: -- bq. We'll know more about kind of expected but not directly tested ones after all XWiki integration tests are executed in a couple of hours. Looks OK on that front too from what we can see. Well done :) > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025068#comment-17025068 ] Thomas Mortagne commented on VELOCITY-926: -- Looks good for the tested expected Velocity behaviors (AKA xwiki-commons-velocity unit tests). We'll know more about kind of expected but not directly tested ones after all XWiki integration tests are executed in a couple of hours. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025036#comment-17025036 ] Claude Brisson commented on VELOCITY-926: - [~tmortagne], would you be kind enough to test this snapshot version before I push out the RC? Thanks. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024437#comment-17024437 ] Thomas Mortagne commented on VELOCITY-926: -- bq. global values provide defaults for missing arguments Sounds good to me. It would be enough to cover https://issues.apache.org/jira/browse/VELOCITY-926?focusedCommentId=17023076&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17023076. Even if it does not cover the other use cases discussed on the mailing list regarding the macro local context it's better still better than nothing. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024414#comment-17024414 ] Claude Brisson commented on VELOCITY-926: - What I'm ready to do is review the compatibility option(s) so that global values provide defaults for missing arguments. It looks like you are not the only ones hitting this problem, as Greg Huber reported a similar one. That should fix the recently found differences. I don't know yet if it will be a new {{velocimacro.arguments.global_defaults}} or if it is preferable to deprecate {{velocimacro.arguments.preserve_literals}} and gather both BC behaviors in a new {{velocimacro_enable_bc_mode}} flag. The later has the advantage that it can incorporate other adjustments, like a macro being able to set to null a global reference by setting to null an argument with the same name. What is certain is that reinserting the ProxyVMContext is to be avoided. It had been identified as a major performance bottleneck, and removed for a reason. So beyond the behaviors that won't be emulated is the usecase where you expect a macro to keep its locally set values even if they are modified by external macros or parsings. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024342#comment-17024342 ] Thomas Mortagne commented on VELOCITY-926: -- bq. That's why I was asking for a specific use case What I can tell you is that we did fixed several codes in XWiki Standard doing that but I agree with you that it was mistakes in both cases. So yes I don't have a strong use case to describe but any weird behavior always end up being expected and used in 10 years :) > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024118#comment-17024118 ] Simon Urli commented on VELOCITY-926: - bq. Simon Urli I did not observe the behavior you mention, with or without velocimacro.arguments.preserve_literals set to true. You may want to provide me with a more circumstanced example, including the whole Velocity configuration. This behavior would be a serious bug. Indeed sorry, I've been a bit fast on friday when trying to reproduce a local behaviour. So actually, I had the problem, because myMacro protected myvar from being empty, so the behaviour is actually: {code} #macro (myMacro $myvar) #if (!$myvar) #set($myvar = {}) #end #end #set ($myvar = "value") #myMacro() $myvar {code} We do have this kind of code in our codebase. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17023269#comment-17023269 ] Claude Brisson commented on VELOCITY-926: - [~surli] I did not observe the behavior you mention, with or without {{velocimacro.arguments.preserve_literals}} set to true. You may want to provide me with a more circumstanced example, including the whole Velocity configuration. This behavior would be a serious bug. [~tmortagne] Yes, any change affects backward compatibility. But when they concern ill-formed constructs, like expecting the global value of a reference to magically become a default value for a missing argument, we can question the decision to provide backward compatibility. That's why I was asking for a specific use case where this behavior would be useful, as opposed to just supposing that it could perhaps break something somewhere. Again, since we're *not* passing the argument, there is a strong logic in the fact that it remains null inside the macro. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17023139#comment-17023139 ] Thomas Mortagne commented on VELOCITY-926: -- bq. Could you give me an example where the former behavior would be important for backward compatibility? Any change is important for backward compatibility. As usuall I'm not discussing how valid this behavior is but the fact that this behavior is expected and will break things. > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17023127#comment-17023127 ] Simon Urli commented on VELOCITY-926: - Actually what [~tmortagne] didn't mention is that it also impacts the global variables, so the following: {noformat} #macro (myMacro $myvar) #end #set ($myvar = "value") #myMacro() $myvar {noformat} also produces: * Before VELOCITY-926 and in 1.7: "value" * After VELOCITY-926: $myvar > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17023123#comment-17023123 ] Claude Brisson commented on VELOCITY-926: - It could be the expected behavior. How, otherwise, would the macro know if it has been given an argument? Could you give me an example where the former behavior would be important for backward compatibility? > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17023076#comment-17023076 ] Thomas Mortagne commented on VELOCITY-926: -- Seems this had a side effect: The following: {code} #macro (myMacro $myvar) $myvar #end #set ($myvar = "value") #myMacro() {code} produces: * Before VELOCITY-926 and in 1.7: "value" * After VELOCITY-926: $foobar > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org
[jira] [Commented] (VELOCITY-926) Regression: Macro arguments names cannot collide with external references names
[ https://issues.apache.org/jira/browse/VELOCITY-926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17022288#comment-17022288 ] Thomas Mortagne commented on VELOCITY-926: -- bq. Thanks again to Thomas Mortagne for finding this bug. Thanks you for the quick fix ! > Regression: Macro arguments names cannot collide with external references > names > --- > > Key: VELOCITY-926 > URL: https://issues.apache.org/jira/browse/VELOCITY-926 > Project: Velocity > Issue Type: Bug > Components: Engine >Affects Versions: 2.0, 2.1 >Reporter: Claude Brisson >Assignee: Claude Brisson >Priority: Major > Fix For: 2.2 > > > Consider the following example: > {code} > #macro( test $foo $bar ) > $foo $bar > #end > #set($foo = 'foo') > #set($bar = 'bar') > #test( $bar, $foo ) > {code} > The expected result would be "{{bar foo}}", but since 2.0 we get the > incorrect result "{{bar bar}}", as if the first inner {{$foo}} macro argument > was overwritting the second argument evaluation. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org