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.