Velocity Uberspector behaves differently for get(String) and put(String,
Object) methods
----------------------------------------------------------------------------------------
Key: VELOCITY-449
URL: http://issues.apache.org/jira/browse/VELOCITY-449
Project: Velocity
Type: Bug
Versions: 1.5
Reporter: Henning Schmiedehausen
Fix For: 1.5
Consider an Object
public class Test {
private Object foo;
public Object get(String dummy) { return foo; }
public void put(String dummy, Object foo) { this.foo = foo };
}
Put this object into a Velocity Context as $test, add a HashMap as $map.
Use the following template:
$map.put("key", "val1")
$test.put("key", "val1")
$map.get("key") --> Returns val1
$test.get("key") --> Returns val1
$map.key --> Returns val1
$test.key --> Returns val1
#set ($map.key = "val2")
#set ($test.key = "val2")
$map.key --> Returns val2
$test.key --> Returns val1 !!
The reason for this is, that the UberspectorImpl, in getPropertySet tests in
line 247 whether the passed object is assignable to a Map. This test is no in
the getPropertyGet
and seems to have no reason because the following method lookup for "put" will
succeed anyway.
I'd suggest the removal of this test.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]