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