I have looked at my data and determined that it is
not circular.

I believe there is a problem with the circular reference check.
In utils.IdentityHashMap, the IDKey objects are converted to
a String. This defeats the IDKey code which insures that
objects that aren't equal, but have equal hashCodes aren't
incorrectly identified as being equal.

One possible fix is to use IDKey objects as the keys (not converted
to Strings).

I've attached an IdentityHashMap.java that does this.

I tested it with my code and while it does work, it can be
slow (although I think the speed problem is not in this class).
Personally, I'd prefer a slow correct test to a fast incorrect test.

   Thanks,

      Hayden

-----Original Message-----
From: Davanum Srinivas [mailto:[EMAIL PROTECTED]
Sent: Thursday, May 29, 2003 9:55 AM
To: [EMAIL PROTECTED]
Subject: Re: Circular reference in Vector


Hayden,

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13324

-- dims

--- "Schultz, Hayden" <[EMAIL PROTECTED]> wrote:
> Is this a bug in the VectorSerializer? Is there
> a known workaround?
> 
> I'm using version 1.1RC2.
> 
> Stack trace follows.
> 
>   Thanks,
> 
>      Hayden
> 
> 
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>  faultSubcode:
>  faultString: java.io.IOException: Circular reference in Vector
>  faultActor:
>  faultNode:
>  faultDetail:
>         {http://xml.apache.org/axis/}stackTrace: java.io.IOException: Circular 
> reference in
> Vector
>         at 
> org.apache.axis.encoding.ser.VectorSerializer.serialize(VectorSerializer.java:111)
>         at
>
org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1247)
>         at
> org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java:787)
>         at
>
org.apache.axis.encoding.SerializationContextImpl.outputMultiRefs(SerializationContextImpl.java:858)
>         at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:155)
>         at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:413)
>         at org.apache.axis.message.MessageElement.output(MessageElement.java:779)
>         at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:270)
>         at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:483)
>         at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:375)
>         at org.apache.axis.Message.getContentType(Message.java:400)
>         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:883)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>         at 
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at 
> weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
>         at 
> weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
>         at
> weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
>         at 
> weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
> 
> java.io.IOException: Circular reference in Vectorjava.io.IOException: Circular 
> reference in
> Vector        at
> org.apache.axis.encoding.ser.VectorSerializer.serialize(VectorSerializer.java:111)
>         at
>
org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:1247)
>         at
> org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java:787)
>         at
>
org.apache.axis.encoding.SerializationContextImpl.outputMultiRefs(SerializationContextImpl.java:858)
>         at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:155)
>         at org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:413)
>         at org.apache.axis.message.MessageElement.output(MessageElement.java:779)
>         at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:270)
>         at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:483)
>         at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:375)
>         at org.apache.axis.Message.getContentType(Message.java:400)
>         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:883)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>         at 
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>         at 
> weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
>         at 
> weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
>         at
> weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
>         at 
> weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)


=====
Davanum Srinivas - http://webservices.apache.org/~dims/

__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com

Attachment: IdentityHashMap.java
Description: IdentityHashMap.java

Reply via email to