Index: SourceFactory.java =================================================================== RCS file: /home/projects/castor/scm/castor/src/main/org/exolab/castor/builder/SourceFactory.java,v retrieving revision 1.20 diff -u -r1.20 SourceFactory.java --- SourceFactory.java 5 Mar 2005 13:41:42 -0000 1.20 +++ SourceFactory.java 8 Jun 2005 21:22:42 -0000 @@ -795,12 +795,9 @@ String vName = "propertyChangeListeners"; JField field = new JField(SGTypes.Vector, vName); field.getModifiers().makePrivate(); + field.getModifiers().setTransient(true); parent.addField(field); - - JSourceCode jsc = parent.getConstructor(0).getSourceCode(); - jsc.add("propertyChangeListeners = new Vector();"); - //---------------------------------/ //- notifyPropertyChangeListeners -/ //---------------------------------/ @@ -830,7 +827,7 @@ jdDesc.setDescription("the new value of the property."); parent.addMethod(jMethod); - jsc = jMethod.getSourceCode(); + JSourceCode jsc = jMethod.getSourceCode(); //--fix for bug 1026 jsc.add("if ("); jsc.append(vName); @@ -871,6 +868,13 @@ parent.addMethod(jMethod); jsc = jMethod.getSourceCode(); + + + jsc.add("if ("); + jsc.append(vName); + jsc.append(" == null) {"); + jsc.addIndented(vName+" = new Vector();"); + jsc.add("}"); jsc.add(vName); jsc.append(".addElement(pcl);"); @@ -897,6 +901,9 @@ parent.addMethod(jMethod); jsc = jMethod.getSourceCode(); + jsc.add("if ("); + jsc.append(vName); + jsc.append(" == null) return false;"); jsc.add("return "); jsc.append(vName); jsc.append(".removeElement(pcl);");