http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2310 *** shadow/2310 Mon Jun 25 08:22:32 2001 --- shadow/2310.tmp.26523 Mon Jun 25 10:01:49 2001 *************** *** 2,9 **** | Transformation hangs when input source is not well formed | +----------------------------------------------------------------------------+ | Bug #: 2310 Product: XalanJ2 | ! | Status: NEW Version: 2.1.0 | ! | Resolution: Platform: PC | | Severity: Normal OS/Version: Windows NT/2K | | Priority: Other Component: org.apache.xalan.transf | +----------------------------------------------------------------------------+ --- 2,9 ---- | Transformation hangs when input source is not well formed | +----------------------------------------------------------------------------+ | Bug #: 2310 Product: XalanJ2 | ! | Status: RESOLVED Version: 2.1.0 | ! | Resolution: FIXED Platform: PC | | Severity: Normal OS/Version: Windows NT/2K | | Priority: Other Component: org.apache.xalan.transf | +----------------------------------------------------------------------------+ *************** *** 62,64 **** --- 62,195 ---- out.flush(); out.toString(); } + + ------- Additional Comments From [EMAIL PROTECTED] 2001-06-25 10:01 ------- + I tested this with the latest code, and everything seems fine. An expanded + test: + + package t3; + + import javax.xml.transform.*; + import javax.xml.transform.stream.*; + import javax.xml.transform.sax.*; + import javax.xml.parsers.*; + + /** + * Title: Xalan2j + * Description: + * Copyright: Copyright (c) 2000 + * Company: + * @author + * @version 1.0 + */ + public class T3 + { + + /** + * Constructor T3 + * + */ + public T3(){} + + /** + * NEEDSDOC Method main + * + * + * NEEDSDOC @param arg + */ + public static void main(String[] arg) + { + + // java.io.StringWriter out = new java.io.StringWriter(); + java.io.PrintStream out = System.out; + + try + { + String in = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root1></root2>"; + String in_ok = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>Hello world</root>"; + String xsl = + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + + "<xsl:stylesheet version=\"1.0\" + xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">" + + "<xsl:template match=\"/\">" + "<xsl:copy-of select=\".\"/>" + + "</xsl:template>" + "</xsl:stylesheet>"; + + SAXTransformerFactory tfactory = (SAXTransformerFactory) + TransformerFactory.newInstance(); + Transformer t = + tfactory.newTransformer(new StreamSource(new java.io.StringReader + (xsl))); + + try + { + System.out.println("test 1..."); + t.transform(new StreamSource(new java.io.StringReader(in)), + new StreamResult(out)); + } + catch (Exception e) + { + System.out.println("transformation 1 failed (it is supposed to)"); + } + + TransformerHandler thandler + = tfactory.newTransformerHandler(new StreamSource(new java.io.StringReader + (xsl))); + + try + { + System.out.println("test 2..."); + SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); + org.xml.sax.XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(thandler); + thandler.setResult(new StreamResult(out)); + reader.parse(new org.xml.sax.InputSource(new java.io.StringReader(in))); + } + catch (Exception e) + { + System.out.println("transformation 2 failed (it is supposed to)"); + } + + try + { + thandler + = tfactory.newTransformerHandler(new StreamSource(new + java.io.StringReader(xsl))); + System.out.println("test 3..."); + SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); + org.xml.sax.XMLReader reader = parser.getXMLReader(); + reader.setContentHandler(thandler); + thandler.setResult(new StreamResult(out)); + reader.parse(new org.xml.sax.InputSource(new java.io.StringReader + (in_ok))); + } + catch (Exception e) + { + System.out.println("transformation 3 failed (bad)"); + e.printStackTrace(); + } + + t = ((TransformerFactory) TransformerFactory.newInstance()).newTransformer + ( + new StreamSource(new java.io.StringReader(xsl))); + + try + { + System.out.println("test 4..."); + t.transform(new StreamSource(new java.io.StringReader(in_ok)), + new StreamResult(out)); + } + catch (Exception e) + { + System.out.println("transformation 4 failed (bad)"); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + + out.flush(); + // out.toString(); + } + }
