Author: cbrisson
Date: Thu Jan 23 16:51:09 2020
New Revision: 1873069
URL: http://svn.apache.org/viewvc?rev=1873069&view=rev
Log:
[engine] Fix VELOCITY-926
Added:
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity926TestCase.java
- copied, changed from r1872422,
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity924TestCase.java
Modified:
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
Modified:
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java?rev=1873069&r1=1873068&r2=1873069&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/runtime/directive/VelocimacroProxy.java
Thu Jan 23 16:51:09 2020
@@ -26,8 +26,6 @@ import org.apache.velocity.runtime.Rende
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.RuntimeServices;
import org.apache.velocity.runtime.directive.Macro.MacroArg;
-import org.apache.velocity.runtime.parser.node.ASTMap;
-import org.apache.velocity.runtime.parser.node.ASTObjectArray;
import org.apache.velocity.runtime.parser.node.ASTReference;
import org.apache.velocity.runtime.parser.node.ASTStringLiteral;
import org.apache.velocity.runtime.parser.node.Node;
@@ -402,7 +400,6 @@ public class VelocimacroProxy extends Di
break;
}
- context.put(macroArg.name, newVal);
values[(i-1) * 2 + 1] = newVal;
/* when preserveArgumentsLiterals is true, we still store the
actual reference passed to the macro
@@ -429,6 +426,14 @@ public class VelocimacroProxy extends Di
}
}
+ // Now really put the values in the context
+ for (int i = 1; i < macroArgs.size(); i++)
+ {
+ MacroArg macroArg = macroArgs.get(i);
+ Object value = values[(i-1) * 2 + 1];
+ context.put(macroArg.name, value);
+ }
+
// return the array of replaced and new values
return values;
}
Copied:
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity926TestCase.java
(from r1872422,
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity924TestCase.java)
URL:
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity926TestCase.java?p2=velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity926TestCase.java&p1=velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity924TestCase.java&r1=1872422&r2=1873069&rev=1873069&view=diff
==============================================================================
---
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity924TestCase.java
(original)
+++
velocity/engine/trunk/velocity-engine-core/src/test/java/org/apache/velocity/test/issues/Velocity926TestCase.java
Thu Jan 23 16:51:09 2020
@@ -23,42 +23,17 @@ import org.apache.velocity.VelocityConte
import org.apache.velocity.test.BaseTestCase;
/**
- * This class tests VELOCITY-855.
+ * This class tests VELOCITY-926.
*/
-public class Velocity924TestCase extends BaseTestCase
+public class Velocity926TestCase extends BaseTestCase
{
- public Velocity924TestCase(String name)
+ public Velocity926TestCase(String name)
{
super(name);
}
- public static class Foo
+ public void testNamesCollision()
{
- public String getName() { return "foo"; }
- }
-
- protected void setUpContext(VelocityContext context)
- {
- context.put("var", new Foo());
- }
-
- public void testVelocity924Getter()
- {
-
assertEvalEquals("org.apache.velocity.test.issues.Velocity924TestCase$Foo foo",
"$var.class.name $var.name");
- }
-
- public void testVelocity924Method()
- {
-
assertEvalEquals("org.apache.velocity.test.issues.Velocity924TestCase$Foo foo",
"$var.class.getName()
$var.getName()");assertEvalEquals("org.apache.velocity.test.issues.Velocity924TestCase$Foo
foo", "$var.class.name $var.name");
- }
-
- public void testVelocity924Getter2()
- {
- assertEvalEquals("foo
org.apache.velocity.test.issues.Velocity924TestCase$Foo", "$var.name
$var.class.name");
- }
-
- public void testVelocity924Method2()
- {
- assertEvalEquals("foo
org.apache.velocity.test.issues.Velocity924TestCase$Foo", "$var.getName()
$var.class.getName()");assertEvalEquals("org.apache.velocity.test.issues.Velocity924TestCase$Foo
foo", "$var.class.name $var.name");
+ assertEvalEquals("bar foo",
"#set($foo='foo')#set($bar='bar')#macro(test, $foo, $bar)$foo
$bar#end#test($bar, $foo)");
}
}