craigmcc    2002/12/15 16:29:48

  Modified:    beanutils/src/java/org/apache/commons/beanutils
                        BeanUtils.java
  Log:
  Improve the performance of getArrayProperty() by using an array as the
  destination, rather than an ArrayList that is then converted to an array.
  
  PR: Bugzilla #15160
  Submitted by: Ingo Struck <ingo at ingostruck.de>
  
  Revision  Changes    Path
  1.30      +16 -18    
jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/BeanUtils.java
  
  Index: BeanUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/BeanUtils.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- BeanUtils.java    16 Dec 2002 00:21:02 -0000      1.29
  +++ BeanUtils.java    16 Dec 2002 00:29:48 -0000      1.30
  @@ -456,27 +456,25 @@
               Iterator items = ((Collection) value).iterator();
               while (items.hasNext()) {
                   Object item = items.next();
  -                if (item == null)
  +                if (item == null) {
                       values.add((String) null);
  -                else
  +                } else {
                       values.add(item.toString());
  +                }
               }
               return ((String[]) values.toArray(new String[values.size()]));
           } else if (value.getClass().isArray()) {
  -            ArrayList values = new ArrayList();
  -            try {
  -                int n = Array.getLength(value);
  -                for (int i = 0; i < n; i++) {
  -                    Object item = Array.get(value, i);
  -                    if (item == null)
  -                        values.add((String) null);
  -                    else
  -                        values.add(item.toString());
  +            int n = Array.getLength(value);
  +            String results[] = new String[n];
  +            for (int i = 0; i < n; i++) {
  +                Object item = Array.get(value, i);
  +                if (item == null) {
  +                    results[i] = null;
  +                } else {
  +                    results[i] = item.toString();
                   }
  -            } catch (ArrayIndexOutOfBoundsException e) {
  -                ;
               }
  -            return ((String[]) values.toArray(new String[values.size()]));
  +            return (results);
           } else {
               String results[] = new String[1];
               results[0] = value.toString();
  
  
  

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

Reply via email to