husted      2004/06/25 17:22:59

  Modified:    src/share/org/apache/struts/taglib/logic EmptyTag.java
  Log:
  Apply #29448 "EmptyTag does not worth with Arrays" submitted by Dave King
  
  Revision  Changes    Path
  1.14      +28 -23    
jakarta-struts/src/share/org/apache/struts/taglib/logic/EmptyTag.java
  
  Index: EmptyTag.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/EmptyTag.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- EmptyTag.java     14 Mar 2004 06:23:44 -0000      1.13
  +++ EmptyTag.java     26 Jun 2004 00:22:59 -0000      1.14
  @@ -4,13 +4,13 @@
    * $Date$
    *
    * Copyright 1999-2004 The Apache Software Foundation.
  - * 
  + *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
  - * 
  + *
    *      http://www.apache.org/licenses/LICENSE-2.0
  - * 
  + *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  @@ -22,8 +22,10 @@
   
   import java.util.Collection;
   import java.util.Map;
  +import java.lang.reflect.Array;
   
   import javax.servlet.jsp.JspException;
  +
   import org.apache.struts.taglib.TagUtils;
   
   /**
  @@ -65,22 +67,22 @@
        * @exception JspException if a JSP exception occurs
        */
       protected boolean condition(boolean desired) throws JspException {
  -             if (this.name == null) {
  -                     JspException e =
  -                             new 
JspException(messages.getMessage("empty.noNameAttribute"));
  -                     TagUtils.getInstance().saveException(pageContext, e);
  -                     throw e;
  -             }
  -        
  -             Object value = null;
  -             if (this.property == null) {
  -                     value = TagUtils.getInstance().lookup(pageContext, name, 
scope);
  -             } else {
  -                     value = TagUtils.getInstance().lookup(pageContext, name, 
property, scope);
  -             }
  -        
  +        if (this.name == null) {
  +            JspException e =
  +                    new JspException(messages.getMessage("empty.noNameAttribute"));
  +            TagUtils.getInstance().saveException(pageContext, e);
  +            throw e;
  +        }
  +
  +        Object value = null;
  +        if (this.property == null) {
  +            value = TagUtils.getInstance().lookup(pageContext, name, scope);
  +        } else {
  +            value = TagUtils.getInstance().lookup(pageContext, name, property, 
scope);
  +        }
  +
           boolean empty = true;
  -        
  +
           if (value == null) {
               empty = true;
   
  @@ -96,11 +98,14 @@
               Map mapValue = (Map) value;
               empty = mapValue.isEmpty();
   
  +        } else if (value.getClass().isArray()) {
  +            empty = Array.getLength(value) == 0;
  +
           } else {
               empty = false;
           }
   
  -             return (empty == desired);
  +        return (empty == desired);
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to