This patch fixes the NullPointerException found in gnu.xml.transform.ParameterNode as identified by PR36220. It also adds a few toString implementations to these classes to aid in debugging.
ChangeLog: 2008-06-22 Andrew John Hughes <[EMAIL PROTECTED]> PR classpath/36220: * gnu/xml/transform/ParameterNode.java: (clone()): Only clone select if not null. (toString()): Always include value of select. * gnu/xml/transform/Stylesheet.java: (toString()): Implemented. * gnu/xml/transform/Template.java: (toString()): Add value of node. * gnu/xml/transform/TemplatesImpl.java: (toString()): Implemented. -- Andrew :) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint = F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
Index: gnu/xml/transform/ParameterNode.java =================================================================== RCS file: /sources/classpath/classpath/gnu/xml/transform/ParameterNode.java,v retrieving revision 1.6 diff -u -u -r1.6 ParameterNode.java --- gnu/xml/transform/ParameterNode.java 17 Mar 2008 01:28:15 -0000 1.6 +++ gnu/xml/transform/ParameterNode.java 22 Jun 2008 03:10:41 -0000 @@ -72,7 +72,7 @@ TemplateNode clone(Stylesheet stylesheet) { TemplateNode ret = new ParameterNode(name, - select.clone(stylesheet), + select == null ? null : select.clone(stylesheet), type); if (children != null) ret.children = children.clone(stylesheet); @@ -166,11 +166,8 @@ buf.append('['); buf.append("name="); buf.append(name); - if (select != null) - { - buf.append(",select="); - buf.append(select); - } + buf.append(",select="); + buf.append(select); buf.append(']'); return buf.toString(); } Index: gnu/xml/transform/Stylesheet.java =================================================================== RCS file: /sources/classpath/classpath/gnu/xml/transform/Stylesheet.java,v retrieving revision 1.11 diff -u -u -r1.11 Stylesheet.java --- gnu/xml/transform/Stylesheet.java 18 Sep 2007 21:52:32 -0000 1.11 +++ gnu/xml/transform/Stylesheet.java 22 Jun 2008 03:10:43 -0000 @@ -37,6 +37,8 @@ package gnu.xml.transform; +import gnu.java.lang.CPStringBuilder; + import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.ArrayList; @@ -1768,5 +1770,14 @@ dst.setUserData(key, data, this); } + public String toString() + { + CPStringBuilder b = new CPStringBuilder(getClass().getName()); + b.append("[templates="); + b.append(templates); + b.append("]"); + return b.toString(); + } + } Index: gnu/xml/transform/Template.java =================================================================== RCS file: /sources/classpath/classpath/gnu/xml/transform/Template.java,v retrieving revision 1.7 diff -u -u -r1.7 Template.java --- gnu/xml/transform/Template.java 17 Mar 2008 01:28:15 -0000 1.7 +++ gnu/xml/transform/Template.java 22 Jun 2008 03:10:45 -0000 @@ -245,6 +245,8 @@ buf.append(",mode="); buf.append(mode); } + buf.append(",node="); + buf.append(node); buf.append(']'); return buf.toString(); Index: gnu/xml/transform/TemplatesImpl.java =================================================================== RCS file: /sources/classpath/classpath/gnu/xml/transform/TemplatesImpl.java,v retrieving revision 1.3 diff -u -u -r1.3 TemplatesImpl.java --- gnu/xml/transform/TemplatesImpl.java 2 Jul 2005 20:32:16 -0000 1.3 +++ gnu/xml/transform/TemplatesImpl.java 22 Jun 2008 03:10:45 -0000 @@ -37,6 +37,8 @@ package gnu.xml.transform; +import gnu.java.lang.CPStringBuilder; + import java.util.Properties; import javax.xml.transform.Templates; import javax.xml.transform.Transformer; @@ -76,5 +78,18 @@ { return (Properties) outputProperties.clone(); } - + + public String toString() + { + CPStringBuilder b = new CPStringBuilder(getClass().getName()); + b.append("[factory="); + b.append(factory); + b.append(",stylesheet="); + b.append(stylesheet); + b.append(",outputProperties="); + b.append(outputProperties); + b.append("]"); + return b.toString(); + } + }