CVSROOT: /cvsroot/classpath Module name: classpath Changes by: Chris Burdess <dog> 06/06/07 08:04:49
Modified files: . : ChangeLog gnu/xml/stream : SAXParser.java XMLParser.java gnu/xml/transform: TransformerImpl.java Log message: 2006-06-07 Chris Burdess <[EMAIL PROTECTED]> * gnu/xml/stream/SAXParser.java, gnu/xml/stream/XMLParser.java: Add command line options for setting parsing parameters (for simpler debugging). * gnu/xml/transform/TransformerImpl.java: Try to ensure that I/O error closing output stream is propagated to application. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.7690&r2=1.7691 http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/SAXParser.java?cvsroot=classpath&r1=1.20&r2=1.21 http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/XMLParser.java?cvsroot=classpath&r1=1.28&r2=1.29 http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/transform/TransformerImpl.java?cvsroot=classpath&r1=1.14&r2=1.15 Patches: Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.7690 retrieving revision 1.7691 diff -u -b -r1.7690 -r1.7691 --- ChangeLog 6 Jun 2006 22:39:49 -0000 1.7690 +++ ChangeLog 7 Jun 2006 08:04:48 -0000 1.7691 @@ -1,3 +1,11 @@ +2006-06-07 Chris Burdess <[EMAIL PROTECTED]> + + * gnu/xml/stream/SAXParser.java, + gnu/xml/stream/XMLParser.java: Add command line options for setting + parsing parameters (for simpler debugging). + * gnu/xml/transform/TransformerImpl.java: Try to ensure that I/O error + closing output stream is propagated to application. + 2006-06-06 Mark Wielaard <[EMAIL PROTECTED]> * include/jni.h (JDK1_1InitArgs): Mark pointer-to-function types Index: gnu/xml/stream/SAXParser.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/SAXParser.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -b -r1.20 -r1.21 --- gnu/xml/stream/SAXParser.java 4 Mar 2006 20:45:32 -0000 1.20 +++ gnu/xml/stream/SAXParser.java 7 Jun 2006 08:04:49 -0000 1.21 @@ -976,10 +976,56 @@ public static void main(String[] args) throws Exception { - SAXParser parser = new SAXParser(); - InputSource input = new InputSource(args[0]); - parser.parse(input, new org.xml.sax.helpers.DefaultHandler()); - + boolean validating = false; + boolean namespaceAware = false; + boolean xIncludeAware = false; + boolean expectCallbackClass = false; + String callbackClass = null; + int pos = 0; + while (pos < args.length && (args[pos].startsWith("-") || expectCallbackClass)) + { + if ("-x".equals(args[pos])) + xIncludeAware = true; + else if ("-v".equals(args[pos])) + validating = true; + else if ("-n".equals(args[pos])) + namespaceAware = true; + else if ("-c".equals(args[pos])) + expectCallbackClass = true; + else if (expectCallbackClass) + { + callbackClass = args[pos]; + expectCallbackClass = false; + } + pos++; + } + if (pos >= args.length || expectCallbackClass) + { + System.out.println("Syntax: SAXParser [-n] [-v] [-x] [-c <class>] <file> [<file2> [...]]"); + System.out.println("\t-n: use namespace aware mode"); + System.out.println("\t-v: use validating parser"); + System.out.println("\t-x: use XInclude aware mode"); + System.out.println("\t-c <class>: use specified class as callback handler (must have a no-arg public constructor)"); + System.exit(2); + } + while (pos < args.length) + { + ContentHandler handler = null; + if (callbackClass != null) + { + Class t = Class.forName(callbackClass); + handler = (ContentHandler) t.newInstance(); + } + else + handler = new org.xml.sax.helpers.DefaultHandler(); + SAXParser parser = new SAXParser(validating, namespaceAware, + xIncludeAware); + InputSource input = new InputSource(args[pos]); + XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(handler); + reader.parse(input); + pos++; + } } } Index: gnu/xml/stream/XMLParser.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/xml/stream/XMLParser.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -b -r1.28 -r1.29 --- gnu/xml/stream/XMLParser.java 20 Mar 2006 19:54:35 -0000 1.28 +++ gnu/xml/stream/XMLParser.java 7 Jun 2006 08:04:49 -0000 1.29 @@ -4250,13 +4250,34 @@ public static void main(String[] args) throws Exception { + boolean validating = false; + boolean namespaceAware = false; boolean xIncludeAware = false; - if (args.length > 1 && "-x".equals(args[1])) + int pos = 0; + while (pos < args.length && args[pos].startsWith("-")) + { + if ("-x".equals(args[pos])) xIncludeAware = true; - XMLParser p = new XMLParser(new java.io.FileInputStream(args[0]), - absolutize(null, args[0]), - true, // validating - true, // namespaceAware + else if ("-v".equals(args[pos])) + validating = true; + else if ("-n".equals(args[pos])) + namespaceAware = true; + pos++; + } + if (pos >= args.length) + { + System.out.println("Syntax: XMLParser [-n] [-v] [-x] <file> [<file2> [...]]"); + System.out.println("\t-n: use namespace aware mode"); + System.out.println("\t-v: use validating parser"); + System.out.println("\t-x: use XInclude aware mode"); + System.exit(2); + } + while (pos < args.length) + { + XMLParser p = new XMLParser(new java.io.FileInputStream(args[pos]), + absolutize(null, args[pos]), + validating, // validating + namespaceAware, // namespaceAware true, // coalescing, true, // replaceERefs true, // externalEntities @@ -4268,7 +4289,7 @@ null); XMLStreamReader reader = p; if (xIncludeAware) - reader = new XIncludeFilter(p, args[0], true, true, true); + reader = new XIncludeFilter(p, args[pos], true, true, true); try { int event; @@ -4277,60 +4298,71 @@ { event = reader.next(); Location loc = reader.getLocation(); - System.out.print(loc.getLineNumber()+":"+loc.getColumnNumber()+" "); + System.out.print(loc.getLineNumber() + ":" + + loc.getColumnNumber() + " "); switch (event) { case XMLStreamConstants.START_DOCUMENT: - System.out.println("START_DOCUMENT version="+reader.getVersion()+ - " encoding="+reader.getEncoding()); + System.out.println("START_DOCUMENT version=" + + reader.getVersion() + + " encoding=" + + reader.getEncoding()); break; case XMLStreamConstants.END_DOCUMENT: System.out.println("END_DOCUMENT"); break; case XMLStreamConstants.START_ELEMENT: - System.out.println("START_ELEMENT "+reader.getName()); + System.out.println("START_ELEMENT " + + reader.getName()); int l = reader.getNamespaceCount(); for (int i = 0; i < l; i++) - System.out.println("\tnamespace "+reader.getNamespacePrefix(i)+ - "='"+reader.getNamespaceURI(i)+"'"); + System.out.println("\tnamespace " + + reader.getNamespacePrefix(i) + "='" + + reader.getNamespaceURI(i)+"'"); l = reader.getAttributeCount(); for (int i = 0; i < l; i++) - System.out.println("\tattribute "+reader.getAttributeName(i)+ - "='"+reader.getAttributeValue(i)+"'"); + System.out.println("\tattribute " + + reader.getAttributeName(i) + "='" + + reader.getAttributeValue(i) + "'"); break; case XMLStreamConstants.END_ELEMENT: - System.out.println("END_ELEMENT "+reader.getName()); + System.out.println("END_ELEMENT " + reader.getName()); break; case XMLStreamConstants.CHARACTERS: - System.out.println("CHARACTERS '"+encodeText(reader.getText())+"'"); + System.out.println("CHARACTERS '" + + encodeText(reader.getText()) + "'"); break; case XMLStreamConstants.CDATA: - System.out.println("CDATA '"+encodeText(reader.getText())+"'"); + System.out.println("CDATA '" + + encodeText(reader.getText()) + "'"); break; case XMLStreamConstants.SPACE: - System.out.println("SPACE '"+encodeText(reader.getText())+"'"); + System.out.println("SPACE '" + + encodeText(reader.getText()) + "'"); break; case XMLStreamConstants.DTD: - System.out.println("DTD "+reader.getText()); + System.out.println("DTD " + reader.getText()); break; case XMLStreamConstants.ENTITY_REFERENCE: - System.out.println("ENTITY_REFERENCE "+reader.getText()); + System.out.println("ENTITY_REFERENCE " + reader.getText()); break; case XMLStreamConstants.COMMENT: - System.out.println("COMMENT '"+encodeText(reader.getText())+"'"); + System.out.println("COMMENT '" + + encodeText(reader.getText()) + "'"); break; case XMLStreamConstants.PROCESSING_INSTRUCTION: - System.out.println("PROCESSING_INSTRUCTION "+reader.getPITarget()+ - " "+reader.getPIData()); + System.out.println("PROCESSING_INSTRUCTION " + + reader.getPITarget() + " " + + reader.getPIData()); break; case START_ENTITY: - System.out.println("START_ENTITY "+reader.getText()); + System.out.println("START_ENTITY " + reader.getText()); break; case END_ENTITY: - System.out.println("END_ENTITY "+reader.getText()); + System.out.println("END_ENTITY " + reader.getText()); break; default: - System.out.println("Unknown event: "+event); + System.out.println("Unknown event: " + event); } } } @@ -4342,6 +4374,8 @@ " of "+l.getSystemId()); throw e; } + pos++; + } } /** Index: gnu/xml/transform/TransformerImpl.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/xml/transform/TransformerImpl.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -b -r1.14 -r1.15 --- gnu/xml/transform/TransformerImpl.java 6 Jun 2006 13:21:21 -0000 1.14 +++ gnu/xml/transform/TransformerImpl.java 7 Jun 2006 08:04:49 -0000 1.15 @@ -576,6 +576,19 @@ } catch (IOException e) { + if (errorListener != null) + { + try + { + errorListener.error(new TransformerException(e)); + } + catch (TransformerException e2) + { + e2.printStackTrace(System.err); + } + } + else + e.printStackTrace(System.err); } } }