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();
+ }
+
}