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: use...@27672f -> use...@1439420 ->
use...@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.