You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Dave Sowerby (JIRA)" <de...@tuscany.apache.org> on 2009/10/13 10:13:31 UTC
[jira] Created: (TUSCANY-3302) Cyclic Object Models Not Supported
in SOAP based Transports
Cyclic Object Models Not Supported in SOAP based Transports
-----------------------------------------------------------
Key: TUSCANY-3302
URL: https://issues.apache.org/jira/browse/TUSCANY-3302
Project: Tuscany
Issue Type: Bug
Affects Versions: Java-SCA-1.4
Environment: Solaris, Windows XP, Weblogic 9.2
Reporter: Dave Sowerby
Hi All,
When attempting to return an Object graph over binding.ws over http or jms where the Object graph contains cyclic references, I see the following:
[JMSWorker-1] ERROR org.apache.axiom.om.impl.llom.OMSourcedElementImpl - Could not get parser from data source for elem
ent {http://pojo.example.com/}getGraph
javax.xml.stream.XMLStreamException
at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXBDataSource.serialize(JAXBDataSource.java:128)
at org.apache.tuscany.sca.databinding.jaxb.axiom.JAXBDataSource.getReader(JAXBDataSource.java:71)
at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getDirectReader(OMSourcedElementImpl.java:167)
at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand(OMSourcedElementImpl.java:190)
at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:626)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:905)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:889)
at org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:213)
at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:889)
at org.apache.axiom.om.impl.llom.OMNodeImpl.serialize(OMNodeImpl.java:375)
at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:1051)
at org.apache.axis2.transport.jms.JMSSender.createJMSMessage(JMSSender.java:334)
at org.apache.axis2.transport.jms.JMSSender.invoke(JMSSender.java:128)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.j
ava:45)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at org.apache.axis2.transport.jms.JMSMessageReceiver$Worker.run(JMSMessageReceiver.java:252)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:595)
After quite a bit of debugging I see the following stack:
java.security.PrivilegedActionException: javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: UserVO@27672f -> UserVO@1439420 -> UserVO@27672f]
Would it be possible to allow cyclic graphs? Failing that, could this exception handling be improved?
Cheers,
Dave.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.