You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by ba...@apache.org on 2009/05/25 11:06:27 UTC
svn commit: r778359 -
/jakarta/taglibs/sandbox/unstandard/trunk/src/main/java/org/apache/taglibs/unstandard/SizeTag.java
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-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org