IntrospectionUtils.isMethodInvocationConvertible() returns true for
NumberFormat.format(double) method with a Float.class argument
----------------------------------------------------------------------------------------------------------------------------------
Key: VELOCITY-753
URL: https://issues.apache.org/jira/browse/VELOCITY-753
Project: Velocity
Issue Type: Bug
Components: Engine
Affects Versions: 1.6.2
Reporter: Tim Kuntz
NumberFormat has both a format(double) and format(Object) method. When
evaluated against a Float, IntrospectionUtils is returning true. This causes
Method.getBestMatch() to throw an AmbigouusException.
I have included a failing test case below to show this issue.
Thanks,
Tim
import java.io.StringReader;
import java.io.StringWriter;
import java.text.NumberFormat;
import junit.framework.TestCase;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
public class VelocityFormatTest extends TestCase {
public void test_format_of_float() throws Exception {
// verify format() outside of Velocity
NumberFormat numberFormat = NumberFormat.getInstance();
Float aFloat = new Float(5.23);
assertEquals("5.23", numberFormat.format(aFloat));
Velocity.init();
VelocityContext context = new VelocityContext();
context.put("numberFormatter", numberFormat);
context.put("aFloat", aFloat);
StringWriter sw = new StringWriter();
StringReader sr = new StringReader(
"float value is
${numberFormatter.format($aFloat)}");
Velocity.evaluate(context, sw, "name", sr);
String expectedValue = "float value is 5.23";
assertEquals(expectedValue, sw.toString());
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]