You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Glencross, Christian" <Ch...@gs.com> on 2001/02/16 16:18:31 UTC

[Xalan-J 2 BUG] Transforming SAX events from Xerces XMLReader

The following code is causing a NullPointerException in
TransformerIdentityImpl#setDocumentLocator().

    SAXTransformerFactory factory =
(SAXTransformerFactory)TransformerFactory.newInstance();
    TransformerHandler serializerHandler = factory.newTransformerHandler();
    handler.setResult( new StreamResult( new StringWriter() ) );
    // ... set error listener and some output properties ...

    XMLReader xr = XMLReaderFactory.createXMLReader();
    // ... disable validation, set error handler ...

    xr.setContentHandler(handler);
    xr.parse( new InputSource( stream ) );

It seems be be because the Xerces 1.2.3 SAX parser calls
handler.setDocumentLocator() before handler.startDocument().
TransformerIdentityImpl.m_resultContentHandler isn't initialised until
TransformerIdentityImpl.startDocument() is called.

If you have any difficulty reproducing this, let me know + I'll send test
code.

Cheers,

Chris

---------------------------------------------------------------------
Chris Glencross                      +44 20 7774 6490
Goldman Sachs
Firmwide Internet
Procession House,
55 Ludgate Hill,
London,   EC4M 7JN