You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Na...@toyota.ca on 2003/03/13 19:19:29 UTC

[BeanUtils] Got NullPointerException when get/set in index property of a BasicDynaBean

Hi all, I got a NullPointerException when executing dynaBean.set.

        final BasicDynaClass dynaClass = new BasicDynaClass(
            "myDynaClass", BasicDynaBean.class, new DynaProperty[] {
                new DynaProperty( "strArrayProp", String[].class ),
                new DynaProperty( "intArrayProp", Integer[].class )
            } );
        final BasicDynaBean dynaBean = (BasicDynaBean)
dynaClass.newInstance();
        dynaBean.set( "strArrayProp", 0, "Hello 0" );
        getLog().trace( "after second set: strArrayProp[0]=" +dynaBean.get
( "strArrayProp", 0 ) );

Did I use DynaBean wrong?
When I look at the BasicDynaBean implementation, looks like only the set
method for non-indexed property will check the DynaClass property
definition. I must be missing something.

Thanks.



Re: [BeanUtils] Got NullPointerException when get/set in index property of a BasicDynaBean

Posted by "Craig R. McClanahan" <cr...@apache.org>.

On Thu, 13 Mar 2003 Natalie_Ng@toyota.ca wrote:

> Date: Thu, 13 Mar 2003 13:19:29 -0500
> From: Natalie_Ng@toyota.ca
> Reply-To: Jakarta Commons Users List <co...@jakarta.apache.org>
> To: commons-user@jakarta.apache.org
> Subject: [BeanUtils] Got NullPointerException when get/set in index
>     property of a BasicDynaBean
>
> Hi all, I got a NullPointerException when executing dynaBean.set.
>
>         final BasicDynaClass dynaClass = new BasicDynaClass(
>             "myDynaClass", BasicDynaBean.class, new DynaProperty[] {
>                 new DynaProperty( "strArrayProp", String[].class ),
>                 new DynaProperty( "intArrayProp", Integer[].class )
>             } );
>         final BasicDynaBean dynaBean = (BasicDynaBean)
> dynaClass.newInstance();

At this point, you have created the DynaBean, but *not* the properties
themselves.  You'll want to precreate the arrays with some appropriate
number of elements, perhaps by doing this:

  dynaBean.set("strArrayProp", new String[3]);
  dynaBean.set("intArrayProp", new Integer[5]);

>         dynaBean.set( "strArrayProp", 0, "Hello 0" );
>         getLog().trace( "after second set: strArrayProp[0]=" +dynaBean.get
> ( "strArrayProp", 0 ) );
>
> Did I use DynaBean wrong?
> When I look at the BasicDynaBean implementation, looks like only the set
> method for non-indexed property will check the DynaClass property
> definition. I must be missing something.
>
> Thanks.
>

Craig