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=6312>.
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=6312

[Cocoon2][Xalan2J] Translets - Problems with using JAXPTransletOneTransformation if we 
use XMLReader/TemplatesHandler

           Summary: [Cocoon2][Xalan2J] Translets - Problems with using
                    JAXPTransletOneTransformation if we use
                    XMLReader/TemplatesHandler
           Product: XalanJ2
           Version: CurrentCVS
          Platform: All
               URL: http://xml.apache.org/cocoon/
        OS/Version: All
            Status: NEW
          Severity: Major
          Priority: Other
         Component: org.apache.xalan.transformer
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Was trying to use tranlets's JAXP support for Cocoon2. Here's the stack trace 
from a slightly modified version of JAXPTransletOneTransformation:
--------------------------------------------------------------------------------
java.lang.NullPointerException
java.lang.NullPointerException
        at org.apache.xerces.parsers.AbstractSAXParser.parse
(AbstractSAXParser.java:1193)
        at JAXPTransletOneTransformation.main
(JAXPTransletOneTransformation.java:117)
java.lang.NullPointerException
java.lang.NullPointerException
        at org.apache.xalan.xsltc.compiler.Parser.getQName(Parser.java:303)
        at org.apache.xalan.xsltc.compiler.Parser.makeInstance(Parser.java:818)
        at org.apache.xalan.xsltc.compiler.Parser.startElement(Parser.java:1100)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement
(AbstractSAXParser.java:445)
        at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement
(XMLNamespaceBinder.java:832)
        at org.apache.xerces.impl.XMLNamespaceBinder.startElement
(XMLNamespaceBinder.java:568)
        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement
(XMLDTDValidator.java:808)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement
(XMLDocumentFragmentScannerImpl.java:752)
        at 
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementH
ook(XMLDocumentScannerImpl.java:927)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.
dispatch(XMLDocumentFragmentScannerImpl.java:1519)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
(XMLDocumentFragmentScannerImpl.java:333)
        at org.apache.xerces.parsers.StandardParserConfiguration.parse
(StandardParserConfiguration.java:525)
        at org.apache.xerces.parsers.StandardParserConfiguration.parse
(StandardParserConfiguration.java:581)
        at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at org.apache.xerces.parsers.AbstractSAXParser.parse
(AbstractSAXParser.java:1157)
        at JAXPTransletOneTransformation.main
(JAXPTransletOneTransformation.java:117)
--------------------------------------------------------------------------------

Here's the source code:
--------------------------------------------------------------------------------
/*
 * The Apache Software License, Version 1.1
 *
 *
 * Copyright (c) 2001 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Xalan" and "Apache Software Foundation" must
 *    not be used to endorse or promote products derived from this
 *    software without prior written permission. For written
 *    permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    nor may "Apache" appear in their name, without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation and was
 * originally based on software copyright (c) 2001, Sun
 * Microsystems., http://www.sun.com.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 * @author Donald Leslie
 *
 */
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TemplatesHandler;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;


/**
 * Using the TrAX/JAXP 1.1 interface to compile and run a translet. The translet
 * extends the abstract Transformer class and is used to perform a single
 * transformation. If you want to use the translet to perform multiple 
 * transformations, see JAXPTransletMultipleTransformations.java.
 * 
 */
public class JAXPTransletOneTransformation
{
  public static void main(String argv[])
          throws TransformerException, TransformerConfigurationException, 
IOException, SAXException,
                 ParserConfigurationException, FileNotFoundException
  { 
    // Set the TransformerFactory system property to generate and use a 
translet.
    // Note: To make this sample more flexible, load properties from a 
properties file.    
    // The setting for the Xalan Transformer 
is "org.apache.xalan.processor.TransformerFactoryImpl"
    String key = "javax.xml.transform.TransformerFactory";
    String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
    Properties props = System.getProperties();
    props.put(key, value);
    System.setProperties(props);    

    String xslInURI = "todo.xsl";
    String xmlInURI = "../../xsltc_todo.xml";
    String htmlOutURI = "todo-xsltc.html";
    try
    {
      // Instantiate the TransformerFactory, and use it along with a SteamSource
      // XSL stylesheet to create a Transformer.
      SAXTransformerFactory tFactory = (SAXTransformerFactory)
TransformerFactory.newInstance();

      //Transformer transformer = tFactory.newTransformer(new StreamSource
(xslInURI));
      TemplatesHandler templatesHandler = tFactory.newTemplatesHandler();
      SAXParserFactory sFactory = SAXParserFactory.newInstance();
      sFactory.setNamespaceAware(true);
      XMLReader reader = sFactory.newSAXParser().getXMLReader();
      reader.setFeature("http://xml.org/sax/features/namespace-prefixes";, true);
      reader.setContentHandler(templatesHandler);
      reader.parse(new InputSource(xslInURI));

      // Perform the transformation from a StreamSource to a StreamResult;
      templatesHandler.getTemplates().newTransformer().transform(new 
StreamSource(xmlInURI),
                            new StreamResult(new FileOutputStream
(htmlOutURI)));  
      System.out.println("Produced todo-xsltc.html");  
    } 
    catch (SAXException e) 
    {
     System.out.println(e.toString());
     e.printStackTrace();
     System.out.println(e.getException().toString());
     e.getException().printStackTrace();
    }
    catch (Exception e) 
    {
     System.out.println(e.toString());
     e.printStackTrace();
    }      
  }
}
--------------------------------------------------------------------------------

Reply via email to