Yes, I did.  The code snippet was in my original posting.  I am including it here 
again for the folks out there -
        try
        {
            Marshaller marshaller = new Marshaller(writer);
            marshaller.setSuppressXSIType(true);
            marshaller.setValidation(true);
            marshaller.setDebug(true);
            
            marshaller.marshal(object);  // <<<<< this line changes the object
            writer.flush();
            marshaller = null;
            document = convert(writer.toString()); 
        }
        catch (Exception e)
        {
            Logger.throwing(e);
            throw new AppException("Unable to create XML: " + e.getMessage(), e);
        }
        finally
        {
            try
            {
                writer.close();
            }
            catch (IOException e)
            {
                Logger.throwing(e);
                throw new AppException("Error closing the output stream");
            }
        }

The line of code that changes the values of the attributes of the object is  
marshaller.marshal(object);

Please let me know if this is sufficient to resolve the issue.

Thanks

Velusamy K. Velu
(614) 728-0017

>>> [EMAIL PROTECTED] 11/02/04 11:16PM >>>


Have you tried to simply create a new Marshaller before marshalling?

--Keith

Velusamy Velu wrote:
> Well, I am not even saving the old XML in a file.  It is used by STxx and thrown 
> away.  I also followed the suggestion made by Tim.  Tim suggested that I close the 
> stream to which the XML string was written.  The problem still occurs.  
> 
> The source of the problem appears to be the marshaling process changing the state of 
> the object it marshals. Or, inside the marshal(object) method an old, stale, cached 
> version of the object is used.  To my amazement I am not sure where, how, when, and 
> which process does the caching.  If I know that I will turn off the caching.  
> Without knowing that specific information it is not possible to solve this problem.
> 
>  Below is the expected XML --
> 
> <vehicle-reference index="0">
>     <statuses index="0">
>         <item>AVAILABLE</item>
>         <value>5</value>
>     </statuses>
>     <statuses index="1">
>         <item>INUSE</item>
>         <value>4</value>
>         <selected>YES</selected>
>     </statuses>
>     <statuses index="2">
>         <item>OUTFORMAINTENANCE</item>
>         <value>6</value>
>     </statuses>
>     <statuses index="3">
>         <item>SALVAGED</item>
>         <value>7</value>
>     </statuses>
> </vehicle-reference>
> 
> However, I get -
> 
> <vehicle-reference index="0">
>     <locations index="0">
>         <item>CDO </item>
>     </locations>
>     <locations index="1">
>         <item>CO </item>
>     </locations>
> 
>     <types index="0">
>         <item>VAN</item>
>     </types>
>     <types index="0">
>         <item>SUV</item>
>     </types>
> 
>     <statuses index="0">
>         <item>AVAILABLE</item>
>         <value>5</value>
>     </statuses>
>     <statuses index="1">
>         <item>INUSE</item>
>         <value>4</value>
>     </statuses>
>     <statuses index="2">
>         <item>OUTFORMAINTENANCE</item>
>         <value>6</value>
>     </statuses>
>     <statuses index="3">
>         <item>SALVAGED</item>
>         <value>7</value>
>     </statuses>
> 
>     <models index="0">
>         <item>ASTRO</item>
>     </models>
>     <models index="0">
>         <item>C-2500</item>
>     </models>
> 
>     <makes index="0">
>         <item>CHEV</item>
>     </makes>
>     <makes index="0">
>         <item>FORD</item>
>     </makes>
> </vehicle-reference>
> 
> that's wrong.
> 
> 
> Thanks
> 
> Velusamy K. Velu
> (614) 728-0017
> 
> 
>>>>[EMAIL PROTECTED] 11/02/04 12:27PM >>>
> 
> 
> I haven't used the xml side of castor greatly, but have you tried
> deleting the old xml file, and then marshaling the object again? I
> know its kinda a shot in the dark, but since you said the first
> marshal worked fine its worth a shot.
> 
> 
> On Tue, 02 Nov 2004 11:07:46 -0500, Velusamy Velu
> <[EMAIL PROTECTED]> wrote:
> 
>>Hello:
>>
>>I am continuing to investigate this problem and found the following additional 
>>information -
>>
>>The type of the object to be marshaled is VehicleReference
>>        public class VehicleReference extends Selectable
>>        {
>>            private ArrayList    types     = null;
>>            private ArrayList    models    = null;
>>            private ArrayList    makes     = null;
>>            private DropdownList statuses  = null;
>>            private DropdownList locations = null;
>>            private String       license   = null;
>>        ...
>>        }
>>To isolate and repeat the problem only the statuses is populated.  All other 
>>attributes left in null state.  The statuses is of type DropdownList which extends 
>>the java.util.ArrayList and adds a couple of more functionalities.
>>
>>In debug mode while stepping through the code the object (an instance of 
>>VehicleReference) is good until the marshaller.marshall(object) method is called.
>>
>>state of the object before calling -
>>        public class VehicleReference extends Selectable
>>        {
>>            private ArrayList    types     = null;
>>            private ArrayList    models    = null;
>>            private ArrayList    makes     = null;
>>            private DropdownList statuses  = DropdowList (id=305)
>>            private DropdownList locations = null;
>>            private String       license   = null;
>>        ...
>>        }
>>
>>state of the object after that call
>>        public class VehicleReference extends Selectable
>>        {
>>            private ArrayList    types     = DropdowList (id=306)
>>            private ArrayList    models    = DropdowList (id=304)
>>            private ArrayList    makes     = DropdowList (id=303)
>>            private DropdownList statuses  = DropdowList (id=305)
>>            private DropdownList locations = DropdowList (id=302)
>>            private String       license   = null;
>>        ...
>>        }
>>
>>The values assigned during the marshaling process to types, models, makes, and 
>>locations are all from a previous run (about 3 days old) of the program.  All of 
>>those values are accurate values but not wanted now.
>>
>>The result of this is the XML produced is incorrect.
>>
>>I could see that the old object has been cached.  But by which process? and why it 
>>does not refresh? and why it overrides the current state of the object?  Why this 
>>happens only with the objects that are in collections (ArrayList or Vector)?
>>
>>Your help would be greatly appreciated.
>>
>>My previous email is truncated in the interest of keeping this thread relatively 
>>clean.
>>
>>
>>Thanks
>>
>>Velusamy K. Velu
>>(614) 728-0017
>>
>>
>>>>>[EMAIL PROTECTED] 11/02/04 08:46AM >>>
>>
>>Hello:
>>
>>We are a developing a J2EE based web application.  The combination of Struts and 
>>STxx is used to 
>>.
>>.
>>
>>
>>.
>>
>>I wonder if anyone ran into this kind of problem.  Any pointers would greatly help 
>>us.  We have been spending about 4 days fruitlessly on this problem.  I can provide 
>>more code snippets if necessary.
>>
>>Thanks
>>
>>Velusamy K. Velu
>>(614) 728-0017
>>
>>
>>-----------------------------------------------------------
>>If you wish to unsubscribe from this mailing, send mail to
>>[EMAIL PROTECTED] with a subject of:
>>        unsubscribe castor-user
>>
>>
>>
> 
> 
> 
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-user
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ----------------------------------------------------------- 
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-user



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

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

Reply via email to