diff options
author | Claude Brisson <cbrisson@apache.org> | 2019-03-03 12:17:44 +0000 |
---|---|---|
committer | Claude Brisson <cbrisson@apache.org> | 2019-03-03 12:17:44 +0000 |
commit | 43ded3e6d34385a3ce8a41f02474d7230298656f (patch) | |
tree | 6c40d1e0bd19c89ceb7329f69f145f5f84a6281a /velocity-engine-core/src | |
parent | a219f6e6e05e2d6929049fae4b69f327b5430700 (diff) | |
download | apache-velocity-engine-43ded3e6d34385a3ce8a41f02474d7230298656f.tar.gz |
[engine] Rendering of arrays should display their content ('[3, 4, 5]' rather than '[I@15db9742')
git-svn-id: https://svn.apache.org/repos/asf/velocity/engine/trunk@1854697 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'velocity-engine-core/src')
3 files changed, 17 insertions, 0 deletions
diff --git a/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java b/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java index 444669e5..da755197 100644 --- a/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java +++ b/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java @@ -94,6 +94,20 @@ public class DuckType { return (String)value; } + if (coerceType && value.getClass().isArray()) + { + // nicify arrays string representation + StringBuilder builder = new StringBuilder(); + builder.append('['); + int len = Array.getLength(value); + for (int i = 0; i < len; ++i) + { + if (i > 0) builder.append(", "); + builder.append(asString(Array.get(value, i))); + } + builder.append(']'); + return builder.toString(); + } Object got = get(value, Types.STRING); if (got == NO_METHOD) { diff --git a/velocity-engine-core/src/test/resources/templates/compare/string.cmp b/velocity-engine-core/src/test/resources/templates/compare/string.cmp index a59e1eee..ff1d5652 100644 --- a/velocity-engine-core/src/test/resources/templates/compare/string.cmp +++ b/velocity-engine-core/src/test/resources/templates/compare/string.cmp @@ -27,3 +27,4 @@ R R O O C K K S R R OOOOO CCCCC K K SSSS +[10, 20, 30, 40, 50] diff --git a/velocity-engine-core/src/test/resources/templates/string.vm b/velocity-engine-core/src/test/resources/templates/string.vm index c0bdac01..cf95b5ba 100644 --- a/velocity-engine-core/src/test/resources/templates/string.vm +++ b/velocity-engine-core/src/test/resources/templates/string.vm @@ -47,3 +47,5 @@ R R OOOOO CCCCC K K SSSS ) $shape +## test array to string +$intarr |