Author: cbrisson
Date: Sun Mar  3 12:17:44 2019
New Revision: 1854697

URL: http://svn.apache.org/viewvc?rev=1854697&view=rev
Log:
[engine] Rendering of arrays should display their content ('[3, 4, 5]' rather 
than '[I@15db9742')

Modified:
    velocity/engine/trunk/src/changes/changes.xml
    
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
    
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/string.cmp
    
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/string.vm

Modified: velocity/engine/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/src/changes/changes.xml?rev=1854697&r1=1854696&r2=1854697&view=diff
==============================================================================
--- velocity/engine/trunk/src/changes/changes.xml (original)
+++ velocity/engine/trunk/src/changes/changes.xml Sun Mar  3 12:17:44 2019
@@ -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">

Modified: 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java?rev=1854697&r1=1854696&r2=1854697&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/main/java/org/apache/velocity/util/DuckType.java
 Sun Mar  3 12:17:44 2019
@@ -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)
         {

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/string.cmp
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/string.cmp?rev=1854697&r1=1854696&r2=1854697&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/string.cmp
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/string.cmp
 Sun Mar  3 12:17:44 2019
@@ -27,3 +27,4 @@ R  R   O   O  C      K  K        S
 R   R  OOOOO  CCCCC  K   K   SSSS
 
 
+[10, 20, 30, 40, 50]

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/string.vm
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/string.vm?rev=1854697&r1=1854696&r2=1854697&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/string.vm
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/string.vm
 Sun Mar  3 12:17:44 2019
@@ -47,3 +47,5 @@ R   R  OOOOO  CCCCC  K   K   SSSS
 )
 $shape
 
+## test array to string
+$intarr


Reply via email to