aboutsummaryrefslogtreecommitdiff
path: root/velocity-engine-core/src
diff options
context:
space:
mode:
authorClaude Brisson <cbrisson@apache.org>2019-03-03 12:17:44 +0000
committerClaude Brisson <cbrisson@apache.org>2019-03-03 12:17:44 +0000
commit43ded3e6d34385a3ce8a41f02474d7230298656f (patch)
tree6c40d1e0bd19c89ceb7329f69f145f5f84a6281a /velocity-engine-core/src
parenta219f6e6e05e2d6929049fae4b69f327b5430700 (diff)
downloadapache-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')
-rw-r--r--velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java14
-rw-r--r--velocity-engine-core/src/test/resources/templates/compare/string.cmp1
-rw-r--r--velocity-engine-core/src/test/resources/templates/string.vm2
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