Author: bayard
Date: Mon May 25 09:06:26 2009
New Revision: 778359

URL: http://svn.apache.org/viewvc?rev=778359&view=rev
Log:
Fixing bugzilla entry 45433. SizeTag doesn't accept arrays

Modified:
    
jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java

Modified: 
jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java
URL: 
http://svn.apache.org/viewvc/jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java?rev=778359&r1=778358&r2=778359&view=diff
==============================================================================
--- 
jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java
 (original)
+++ 
jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java
 Mon May 25 09:06:26 2009
@@ -75,8 +75,15 @@
             if(target instanceof String) {
                 result = ( (String)target ).length();
             } else
-            if(target instanceof Collection) {
-                result = ( (Object[])target ).length;
+            if(target.getClass().isArray()) {
+                try {
+                    Field lengthField = target.getClass().getField("length");
+                    result = lengthField.getInt(target);
+                } catch(NoSuchFieldException nsfe) {
+                    throw new JspException("Array found without a length 
field", nsfe);
+                } catch(IllegalAccessException iae) {
+                    throw new JspException("Array found with a non-accessible 
length field", iae);
+                }
             }
         }
         if(var == null && result != -1) {



---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-h...@jakarta.apache.org

Reply via email to