The unmarshalling seems correct to me...

Castor won't overwrite the strings that already in the array.

--Keith

Uddhav wrote:
> 
> This is the java source,
> public class MyOrder {
>     public String[] stringArr = new
> String[]{"strElement1","strElement2","strElement3","strElement4"};
>     public String[] getStringArr()
>     {
>       return this.stringArr;
>     }
> 
>     public void setStringArr(String[] stringArr)
>     {
>       this.stringArr = stringArr;
>     }
> }
> 
> This is the mapping file,
> <?xml version="1.0"?>
> <!DOCTYPE mapping SYSTEM "mapping.dtd">
> 
> <mapping>
>         <class name="MyOrder">
>                 <map-to xml="Order"/>
>                  <field name="StringArr"
>                         type="java.lang.String"
>                         collection="array">
>                        <bind-xml name="StringArr"/>
>                 </field>
>         </class>
> </mapping>
> 
> After unmarshalling I print the contents of stringArr and get the following
> output,
> strElement1
> strElement2
> strElement3
> strElement4
> strElement1
> strElement2
> strElement3
> strElement4
> i.e. twice the size of the intialised array.
> 
> I tried to add a method using set-method as
>                set-method="addStringArr"
> The corresponding java class has following signature
>     public void addStringArr (String stringArr)
> 
> I found that the function is never reached so I tried changing
> it to String[] from String. The behaviour is still the same.
> 
> Thanks,
> Uddhav
> 
> ----- Original Message -----
> From: "Keith Visco" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, February 25, 2002 10:06 AM
> Subject: Re: [castor-dev] Problem with predefiined arrays while
> unmarshalling
> 
> >
> > Can you attach a small example which demonstrates the problem?
> >
> > A possible work around is to use an "add method" so you can control
> > the collections...
> >
> > <field name="someClass" set-method="addSomeClass" ...>
> >
> > Note that you need to use the set-method attribute to specify the
> > add-method.
> >
> > Thanks,
> >
> > --Keith
> >
> > > Uddhav wrote:
> > >
> > > Hi,
> > >    I have a class which intitalises the size of the array
> > >   when the class is instantiated.
> > >   SomeClass[] refClass_ = new SomeClass[4];
> > >   // corresponding getter-setter
> > >
> > >    Marshalling works fine however when I unmarshal I have
> > >   eight elements in the array instead of the expected four.
> > >
> > >   Has anyone faced a similar situation? If so, what is the
> > >  possible workaround for this.
> > >
> > > Thanks,
> > > Uddhav
> > >
> >
> > -----------------------------------------------------------
> > If you wish to unsubscribe from this mailing, send mail to
> > [EMAIL PROTECTED] with a subject of:
> > unsubscribe castor-dev
> >
> >
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to