Step through the "getPropertyDescriptor()" method, which is called just before that 
check.  That's what makes the decision on what type to return.  What is the value of 
"name"?

> -----Original Message-----
> From: Jim Krygowski [mailto:james.krygowski@;shaws.com]
> Sent: Thursday, November 14, 2002 10:43 AM
> To: Struts Users Mailing List
> Subject: RE: IndexOutOfBounds error, Struts 1.1b2, J2SDK 1.4.1
> 
> 
> Been doing some research since my last post.  Here's the setup, same
> application code, same struts jars, same app server switching 
> between JDK
> 1.3.1 and 1.4.1:
> 
> When processing a submit, in the PropertyUtils the following 
> check is made
> in the getIndexedProperty method on or around line 468:
> 
>  if (descriptor instanceof IndexedPropertyDescriptor) {
> 
> With JDK 1.3.1 running descriptor is indeed an 
> IndexedPropertyDescriptor,
> but with JDK 1.4.1 I get a java.beans.PropertyDescriptor, so 
> the code passes
> by the block that should handle the property I've passed an 
> onto a block of
> code that results in the IndexOutOfBoundsException.
> 
> This seems like a 1.4.1 induced bug.  Should I log it in 
> Bugzilla?  Has
> anyone else seen this bug?
> 
> 
> 
> > -----Original Message-----
> > From: Jim Krygowski [mailto:james.krygowski@;shaws.com]
> > Sent: Thursday, November 14, 2002 11:32 AM
> > To: Struts Users Mailing List
> > Subject: IndexOutOfBounds error, Struts 1.1b2, J2SDK 1.4.1
> >
> >
> > Hi all-
> >
> > we have an application originally written to struts 1.1b2 and
> > J2SDK 1.3.1_03
> > that was working fine.  Recently, we've been given the signal to
> > upgrade to
> > J2SDK 1.4.1.  Fine, but now we're finding that our form 
> posts are failing
> > with IndexOutOfBoundsException.  I've traced through the Struts
> > source with
> > a debugger and found the problem in this block of 
> PropertyUtils code:
> >
> >         // Call the property getter and return the value
> >         Object value = readMethod.invoke(bean, new Object[0]);
> >         if (!value.getClass().isArray()) {
> >             if (!(value instanceof java.util.List)) {
> >                 throw new 
> IllegalArgumentException("Property '" + name
> >                         + "' is not indexed");
> >             } else {
> >                 //get the List's value
> >                 return ((java.util.List) value).get(index);
> >             }
> >         } else {
> >             //get the array's value
> >             return (Array.get(value, index));
> >         }
> >
> > It seems to me that the line:
> >
> > return ((java.util.List) value).get(index)
> >
> > fails because the form bean just got created by Struts and 
> hasn't been
> > populated yet.  However, it works just fine when I switch back to
> > JDK 1.3.1.
> >
> > Anyone got any suggestions as to what might be happening?
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:struts-user-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:struts-user-help@;jakarta.apache.org>
> 
> 
> 
> --
> To unsubscribe, e-mail:   
<mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

--
To unsubscribe, e-mail:   <mailto:struts-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:struts-user-help@;jakarta.apache.org>

Reply via email to