hi alek,
the limitation is with BeanSerializer, not with java.
there are several java implementations of SOAP that
do not have this problem.
cheers,
graham
-----Original Message-----
From: Aleksander Slominski [mailto:[EMAIL PROTECTED]]
Sent: Friday, July 13, 2001 5:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Bugs in Soap 2.2 BeanSerializer?
hi,
java does not have containment (or by value) storage - all is by reference
so if your references are cyclic BeanSerializer will fail...
i have checked your code and it seems as if you never used it to print
values you are sending or you would easily see that to reproduce it is
enough just to call your toString(), for example:
Employee A = new Employee();
Employee M = new Employee();
A.setManager(M);
Vector subordinates = new Vector();
subordinates.addElement(A);
M.setSubordinates(subordinates);
System.out.println("manger M="+M);
when i run it i get this:
Exception in thread "main" java.lang.StackOverflowError
at java.lang.FloatingDecimal.<init>(Unknown Source)
at java.lang.Double.toString(Unknown Source)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at Employee.toString(Employee.java:90)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at Employee.toString(Employee.java:91)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at Employee.toString(Employee.java:97)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at Employee.toString(Employee.java:91)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
and so on for hundreds of lines...
thanks,
alek