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

Reply via email to