aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/changes/changes.xml3
-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
4 files changed, 20 insertions, 0 deletions
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 62fe8d1a..f1f3b6fb 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -27,6 +27,9 @@
<body>
<release version="2.1" date="In subversion">
<action type="fix" dev="cbrisson">
+ Rendering of arrays should display their content, as for lists.
+ </action>
+ <action type="fix" dev="cbrisson">
Enhance space gobbling ("lines" mode): do not eat ending newline when directive doesn't start after a newline.
</action>
<action type="fix" dev="cbrisson">
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