Unable to serialize cycle graph of object
-----------------------------------------

         Key: XFIRE-362
         URL: http://jira.codehaus.org/browse/XFIRE-362
     Project: XFire
        Type: Bug

  Components: Aegis Module  
    Versions: 1.1-beta-1    
    Reporter: Jara Cesnek
 Assigned to: Dan Diephouse 
    Priority: Blocker


@WebService(name="tst",serviceName="tst",targetNamespace="http://eno.ws.daisy.marbes.cz";)
public class Test {

    public static class Wstest1 {
        private Wstest2 ws2;
        public Wstest2 getWS2(){
            return ws2;
        }
    }

    public static class Wstest2 {
        private Wstest1 ws1;
        public Wstest1 getWS1(){
            return ws1;
        }
    }

    @WebMethod
    public Wstest1 wstest() throws Exception {
        Wstest1 ws1 = new Wstest1();
        Wstest2 ws2 = new Wstest2();
        ws1.ws2 = ws2;
        ws2.ws1 = ws1;
        return ws1;
    }

}

This produce graph of object with cycle and endup with exception

2006-04-23 23:23:47,277 DEBUG http-8090-Processor2 [HandlerPipeline] Invoking 
handler org.codehaus.xfire.handler.OutMessageSender in phase send
2006-04-23 23:23:47,618 ERROR http-8090-Processor2 [DispatcherServlet] Could 
not complete request
org.springframework.web.util.NestedServletException: Handler processing failed; 
nested exception is java.lang.StackOverflowError: null
java.lang.StackOverflowError
        at sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(UTF_8.java:504)
        at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:575)
        at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
        at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:384)
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:124)
        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:178)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.closeStartElement(BaseNsStreamWriter.java:343)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.checkStartElement(BaseNsStreamWriter.java:387)
        at 
com.ctc.wstx.sw.SimpleNsStreamWriter.writeStartOrEmpty(SimpleNsStreamWriter.java:253)
        at 
com.ctc.wstx.sw.BaseNsStreamWriter.writeStartElement(BaseNsStreamWriter.java:273)
        at 
org.codehaus.xfire.aegis.stax.ElementWriter.writeStartElement(ElementWriter.java:116)
        at 
org.codehaus.xfire.aegis.stax.ElementWriter.<init>(ElementWriter.java:61)
        at 
org.codehaus.xfire.aegis.stax.ElementWriter.getElementWriter(ElementWriter.java:161)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.getWriter(BeanType.java:301)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:275)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:280)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:280)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:280)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:280)
        at 
org.codehaus.xfire.aegis.type.basic.BeanType.writeObject(BeanType.java:280)
...1000x

Xfire must maintain Set of alredy serializabled objects by equals logic and 
wite only ref 
(I hope this will work with hibernate proxy too).

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to