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


Reply via email to