DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4275>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4275 java.lang.NullPointerException Summary: java.lang.NullPointerException Product: Tomcat 3 Version: 3.2.2 Final Platform: PC OS/Version: Windows NT/2K Status: UNCONFIRMED Severity: Blocker Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] // This problem happens only when i run a class with Tomcat // When i run my code with its own main - there are no problems. // I havent seen anyone else reporting anything like this before. // Please check since it might change my plans of using Tomcat as our web server :( // Thank You so very much. java.lang.NullPointerException at org.apache.xalan.serialize.SerializerToXML.writeAttrString(Serializer ToXML.java:2001) at org.apache.xalan.serialize.SerializerToXML.processAttribute(Serialize rToXML.java:957) at org.apache.xalan.serialize.SerializerToXML.startElement(SerializerToX ML.java:829) at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(Tra nsformerIdentityImpl.java:982) at org.apache.xml.utils.TreeWalker.startNode(TreeWalker.java:284) at org.apache.xml.utils.TreeWalker.traverse(TreeWalker.java:119) at org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transf ormerIdentityImpl.java:320) at serRS.writetoString(serRS.java:237) at _0002fsimplebean_0002ejspsimplebean_jsp_9._jspService(_0002fsimplebea n_0002ejspsimplebean_jsp_9.java:164) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspSer vlet.java:130) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspSer vlet.java:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:4 29) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4 05) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372 ) at org.apache.tomcat.core.ContextManager.internalService(ContextManager. java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743 ) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio n(HttpConnectionHandler.java:213) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java: 416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java :501) at java.lang.Thread.run(Thread.java:484) /***********************************************************/ /***********************************************************/ /***********************************************************/ // jdbc api import java.sql.*; //reflect api import java.lang.reflect.*; //xml api import org.w3c.dom.*; import org.w3c.dom.Document; import org.w3c.dom.DOMException; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.NamedNodeMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.*; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; //javax.xml.parsers.ParserConfigurationException import javax.xml.parsers.*; //standard packages import java.io.*; //exceptionz import org.xml.sax.*; import org.xml.sax.SAXException; import java.io.IOException; /* <?xml version="1.0" encoding="UTF-8" ?> <results> <result type="AllUsers"> <record number="1"> <column name="username" /> <column name="password" /> <column name="address1" /> <column name="address2" /> <column name="city" /> <column name="state" /> <column name="zip" /> <column name="country" /> </record> </result> </results> */ public class serRS implements java.io.Serializable { /* Empty Constructor */ public void serRS() {} public String writetoString (ResultSet rs, String typeid) { // return string String returnstr = new String(); try{ //XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); //<results/> Root element Element results = (Element) document.createElement ("results"); document.appendChild(results); //<result/> Element result = (Element) document.createElement ("result"); results.appendChild(result); //<result type="AllUsers"/> Attr type =(Attr) document.createAttribute("type"); Node attrtextnode = (Node) document.createTextNode (typeid); type.appendChild(attrtextnode); result.setAttributeNode(type); Element record; Element column; Node countnode ; Attr number; Attr name; Attr valuetype; Attr tablename; Node columnnametext; Node columnvaluetext; Node valuetypetext; Node tablenametext; int count = 1; // JDBC-ODBC Calls java.sql.ResultSetMetaData md = rs.getMetaData(); while(rs.next()) { // <record> record = (Element) document.createElement ("record"); result.appendChild(record); // <record number="i">xxx</coulmn> number =(Attr) document.createAttribute ("number"); countnode = (Node) document.createTextNode (String.valueOf(count)); count ++ ; number.appendChild(countnode); record.setAttributeNode(number); System.out.print("\nTUPLE: | "); for(int i=1; i<= md.getColumnCount(); i++) { // <column name="">value</value> column = (Element) document.createElement("column"); record.appendChild(column); name =(Attr) document.createAttribute("name"); //columnnametext = (Node) document.createTextNode(md.getColumnLabel(i)); columnnametext = (Node) document.createTextNode(md.getColumnName(i)); name.appendChild (columnnametext); column.setAttributeNode(name); valuetype =(Attr) document.createAttribute("type"); valuetypetext = (Node) document.createTextNode(md.getColumnTypeName(i)); valuetype.appendChild (valuetypetext); column.setAttributeNode (valuetype); tablename =(Attr) document.createAttribute("table"); tablenametext = (Node) document.createTextNode(md.getCatalogName(i)); tablename.appendChild (tablenametext); column.setAttributeNode (tablename); /* System.out.print (md.getColumnType(i) + " | "); System.out.print (md.getColumnTypeName(i) + " | "); System.out.print (md.getColumnLabel(i) + " | "); //System.out.print (rs.getString(i) + " | \n"); */ try { Object o = rs.getObject(md.getColumnLabel(i)); if (!o.equals(null)){ String s = o.toString(); System.out.print (s + "\n"); columnvaluetext = (Node) document.createTextNode(s); column.appendChild(columnvaluetext); } } catch (SQLException sqe ){ sqe.printStackTrace(); } catch (NullPointerException n ){ System.out.print ("Null pointer hui gava!!!!!!"); n.printStackTrace(); } // new line System.out.print("\n"); } } /* File f = new File("local.xml"); //document = builder.parse(f); // Use a Transformer for output */ /* TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(document); */ /* // write to the standard output StreamResult resultstdout = new StreamResult (System.out); transformer.transform(source, resultstdout); */ /* // write to a file StreamResult resultfile = new StreamResult(f); transformer.transform(source, resultfile); */ /* // write to a string java.io.StringWriter sw = new StringWriter(); // use the transformer object StreamResult resultsw = new StreamResult(sw); transformer.transform(source, resultsw); resultsw.setWriter (sw); // create a new String variable (above) // convert the StringWriter object to String returnstr = sw.toString(); */ /* // write to the standard output System.out.println(returnstr); // write to the standard output System.out.println(sw.toString()); */ // Trial basis TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(document); java.io.StringWriter sw = new StringWriter(); try{ // write to the standard output //StreamResult resultstdout = new StreamResult (System.out); //transformer.transform(source, resultstdout); // use the transformer object StreamResult resultsw = new StreamResult(sw); if(! (source.equals(null) || resultsw.equals(null)) ) { transformer.transform(source, resultsw); resultsw.setWriter (sw); } else{ if (source.equals(null)) { System.out.println("********** source**************"); } if (resultsw.equals(null)) { System.out.println("********** resultsw **************"); } } } catch (NullPointerException n ){ System.out.print("Null pointer hui gava again!!!!!!"); n.printStackTrace(); } catch (Exception e ){ System.out.print("Null pointer hui gava again!!!!!!"); e.printStackTrace(); } // create a new String variable (above) // convert the StringWriter object to String //returnstr = sw.toString(); } catch (Exception e){ e.printStackTrace(); } return returnstr; }// end method /** Test main method*/ public static void main( String args[]) { try { System.out.println("\nHello World\n"); serRS serrs = new serRS (); SQLtoRS sqltors = new SQLtoRS(); sqltors.setsqlstr("select * from users"); ResultSet rs = sqltors.getrs(); System.out.println(serrs.writetoString(rs, "AllUsers")); }//end try catch (Exception e) { }//end catch }// end main }//end class // jdbc api import java.sql.*; //reflect api import java.lang.reflect.*; //xml api import org.w3c.dom.*; import org.w3c.dom.Document; import org.w3c.dom.DOMException; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.NamedNodeMap; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.*; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; //javax.xml.parsers.ParserConfigurationException import javax.xml.parsers.*; //standard packages import java.io.*; //exceptionz import org.xml.sax.*; import org.xml.sax.SAXException; import java.io.IOException; /* <?xml version="1.0" encoding="UTF-8" ?> <results> <result type="AllUsers"> <record number="1"> <column name="username" /> <column name="password" /> <column name="address1" /> <column name="address2" /> <column name="city" /> <column name="state" /> <column name="zip" /> <column name="country" /> </record> </result> </results> */ public class serRS implements java.io.Serializable { /* Empty Constructor */ public void serRS() {} public String writetoString (ResultSet rs, String typeid) { // return string String returnstr = new String(); try{ //XML DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); //<results/> Root element Element results = (Element) document.createElement ("results"); document.appendChild(results); //<result/> Element result = (Element) document.createElement ("result"); results.appendChild(result); //<result type="AllUsers"/> Attr type =(Attr) document.createAttribute("type"); Node attrtextnode = (Node) document.createTextNode (typeid); type.appendChild(attrtextnode); result.setAttributeNode(type); Element record; Element column; Node countnode ; Attr number; Attr name; Attr valuetype; Attr tablename; Node columnnametext; Node columnvaluetext; Node valuetypetext; Node tablenametext; int count = 1; // JDBC-ODBC Calls java.sql.ResultSetMetaData md = rs.getMetaData(); while(rs.next()) { // <record> record = (Element) document.createElement ("record"); result.appendChild(record); // <record number="i">xxx</coulmn> number =(Attr) document.createAttribute ("number"); countnode = (Node) document.createTextNode (String.valueOf(count)); count ++ ; number.appendChild(countnode); record.setAttributeNode(number); System.out.print("\nTUPLE: | "); for(int i=1; i<= md.getColumnCount(); i++) { // <column name="">value</value> column = (Element) document.createElement("column"); record.appendChild(column); name =(Attr) document.createAttribute("name"); //columnnametext = (Node) document.createTextNode(md.getColumnLabel(i)); columnnametext = (Node) document.createTextNode(md.getColumnName(i)); name.appendChild (columnnametext); column.setAttributeNode(name); valuetype =(Attr) document.createAttribute("type"); valuetypetext = (Node) document.createTextNode(md.getColumnTypeName(i)); valuetype.appendChild (valuetypetext); column.setAttributeNode (valuetype); tablename =(Attr) document.createAttribute("table"); tablenametext = (Node) document.createTextNode(md.getCatalogName(i)); tablename.appendChild (tablenametext); column.setAttributeNode (tablename); /* System.out.print (md.getColumnType(i) + " | "); System.out.print (md.getColumnTypeName(i) + " | "); System.out.print (md.getColumnLabel(i) + " | "); //System.out.print (rs.getString(i) + " | \n"); */ try { Object o = rs.getObject(md.getColumnLabel(i)); if (!o.equals(null)){ String s = o.toString(); System.out.print (s + "\n"); columnvaluetext = (Node) document.createTextNode(s); column.appendChild(columnvaluetext); } } catch (SQLException sqe ){ sqe.printStackTrace(); } catch (NullPointerException n ){ System.out.print ("Null pointer hui gava!!!!!!"); n.printStackTrace(); } // new line System.out.print("\n"); } } /* File f = new File("local.xml"); //document = builder.parse(f); // Use a Transformer for output */ /* TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(document); */ /* // write to the standard output StreamResult resultstdout = new StreamResult (System.out); transformer.transform(source, resultstdout); */ /* // write to a file StreamResult resultfile = new StreamResult(f); transformer.transform(source, resultfile); */ /* // write to a string java.io.StringWriter sw = new StringWriter(); // use the transformer object StreamResult resultsw = new StreamResult(sw); transformer.transform(source, resultsw); resultsw.setWriter (sw); // create a new String variable (above) // convert the StringWriter object to String returnstr = sw.toString(); */ /* // write to the standard output System.out.println(returnstr); // write to the standard output System.out.println(sw.toString()); */ // Trial basis TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(document); java.io.StringWriter sw = new StringWriter(); try{ // write to the standard output //StreamResult resultstdout = new StreamResult (System.out); //transformer.transform(source, resultstdout); // use the transformer object StreamResult resultsw = new StreamResult(sw); if(! (source.equals(null) || resultsw.equals(null)) ) { transformer.transform(source, resultsw); resultsw.setWriter (sw); } else{ if (source.equals(null)) { System.out.println("********** source**************"); } if (resultsw.equals(null)) { System.out.println("********** resultsw **************"); } } } catch (NullPointerException n ){ System.out.print("Null pointer hui gava again!!!!!!"); n.printStackTrace(); } catch (Exception e ){ System.out.print("Null pointer hui gava again!!!!!!"); e.printStackTrace(); } // create a new String variable (above) // convert the StringWriter object to String //returnstr = sw.toString(); } catch (Exception e){ e.printStackTrace(); } return returnstr; }// end method /** Test main method*/ public static void main( String args[]) { try { System.out.println("\nHello World\n"); serRS serrs = new serRS (); SQLtoRS sqltors = new SQLtoRS(); sqltors.setsqlstr("select * from users"); ResultSet rs = sqltors.getrs(); System.out.println(serrs.writetoString(rs, "AllUsers")); }//end try catch (Exception e) { }//end catch }// end main }//end class