|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
Raw Xml Handling and Synchronized CollectionsHello All
I have invested time in getting Castor working to my satisfaction and the flexibility in the mappings have allowed me to generate xml that adheres to some difficult schemas. Thank you. I have two questions where I haven't found any information to help me. It may be that I haven't looked properly so simply pointing me in the right direction would be appreciated. 1. Some of my objects are marshalled into a database text field and then retrieved later through web services. At the moment I am using Castor to unmarshall and then re-marshall them. This is a waste of CPU and time, especially when the XML is a couple of megabytes. Can I write a field handler to simply return the XML? I have experimented and the best I have been able to do is get it out in a CDATA field. 2. Some of my objects contain synchronised collections which may be being updated by other threads during marshalling. When Castor iterates through these collections a ConcurrentModificationException is thrown. I am working around this issue by creating a "safe" copy of the collection but again this isn't ideal. Is there a recommended way to handle this? I'm happy to provide clarifications if anything is unclear. Thanks in advance Dave |
|
|
Re: Raw Xml Handling and Synchronized CollectionsHi,
d33mb33 wrote: > Hello All > > I have invested time in getting Castor working to my satisfaction and the > flexibility in the mappings have allowed me to generate xml that adheres to > some difficult schemas. Thank you. > > I have two questions where I haven't found any information to help me. It > may be that I haven't looked properly so simply pointing me in the right > direction would be appreciated. > > 1. Some of my objects are marshalled into a database text field and then > retrieved later through web services. At the moment I am using Castor to > unmarshall and then re-marshall them. This is a waste of CPU and time, > especially when the XML is a couple of megabytes. Can I write a field > handler to simply return the XML? I have experimented and the best I have > been able to do is get it out in a CDATA field. you just rephrase your issue ? > 2. Some of my objects contain synchronised collections which may be being > updated by other threads during marshalling. When Castor iterates through > these collections a ConcurrentModificationException is thrown. I am working > around this issue by creating a "safe" copy of the collection but again this > isn't ideal. Is there a recommended way to handle this? Not really. Castor XML is not really thread-safe, and is not meant to be. But out of cusiosity, what is it you are trying to achieve. Or rather, why do you have a need to update those object instances you are about to marshal ? > I'm happy to provide clarifications if anything is unclear. > > Thanks in advance > > Dave --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email |
|
|
Re: Raw Xml Handling and Synchronized CollectionsThanks for the response.
These two questions arise from use cases in a batch system. Long running jobs exist which create results objects that are marshalled into XML with Castor. Users can ask for the status of jobs at any time. When a job finishes the results are marshalled and stored in a database. Issue 1 referred to finished jobs: 1. User makes a web service request for the status of a finished job. 2. The XML results are retrieved from the database. 3. Castor unmarshalls the XML into object A. 4. Object A is embedded inside the full results object (Object B). 5. Object B is marshalled by Castor and sent as the Web Service response. I want to avoid the unmarshall/remarshall for object A and simply return the database XML back as a property of Object B. Issue 2 refers to unfinished jobs: 1. User makes a web service request for the status of an unfinished job. 2. Object B contains a results object (Object A). Object A contains some java.util.SynchronizedList objects. 3. Castor marshalls Object A to XML but does not synchronize when iterating through the SynchronizedList. If a new result is added to the list during synchronization then an exception is thrown. I can work around issue 2 by making a "safe" copy of the results but it is not ideal for a couple of reasons. Any ideas?
|
| Free embeddable forum powered by Nabble | Forum Help |