You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by bu...@apache.org on 2002/10/22 20:13:00 UTC

DO NOT REPLY [Bug 13859] New: - XSLT: processing multiple files is broken

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

XSLT: processing multiple files is broken

           Summary: XSLT: processing multiple files is broken
           Product: Ant
           Version: 1.5.1
          Platform: All
               URL: http://www.linofee.org/~elkner/jakarta/
        OS/Version: All
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: Core tasks
        AssignedTo: ant-dev@jakarta.apache.org
        ReportedBy: elkner@linofee.org


When I use the following task with the original jakarta-ant-1.5.1-bin.tar.gz
and JDK 1.4.1 I get NullPointerExceptions shown below, when ant tries to
process the 2nd file in the implicit fileset:

    <xslt basedir="${src.codegen.dir}"
      destdir="${build.codegen.dir}/${codebase}/render/pdf/"
      style="${src.codegen.dir}/font-file.xsl"
      extension=".java"
      includes="fonts/*.xml"
      classpathref="classpath.extensions">
      <param name="encoding" expression="${textfontencoding}"/>
    </xslt>

-------Exception starts------
...
     [xslt] Processing
/home/elkner/prog/fop/src/codegen/fonts/CourierBoldOblique.xml to
/home/elkner/prog/fop/build/codegen/org/apache/fop/render/pdf/fonts/CourierBoldOblique.java
     [xslt] Loading stylesheet /home/elkner/prog/fop/src/codegen/font-file.xsl
     [xslt] Processing
/home/elkner/prog/fop/src/codegen/fonts/CourierOblique.xml to
/home/elkner/prog/fop/build/codegen/org/apache/fop/render/pdf/fonts/CourierOblique.java
     [xslt] home/elkner/prog/fop/src/codegen/font-file.xsl:27:103: Fatal Error!
Unknown error in XPath Cause: java.lang.NullPointerException
     [xslt] : Fatal Error! Fatal error during transformation Cause: Fatal error
during transformation
     [xslt] Failed to process
/home/elkner/prog/fop/src/codegen/fonts/CourierOblique.xml

BUILD FAILED
file:/home/elkner/prog/fop/build.xml:228: Fatal error during transformation
-------Exception stops-------



-----debug output start -----
...
     [xslt] Transforming into
/home/elkner/prog/fop/build/codegen/org/apache/fop/render/pdf
     [xslt] Processing /home/elkner/prog/fop/src/codegen/fonts/CourierBold.xml
to
/home/elkner/prog/fop/build/codegen/org/apache/fop/render/pdf/fonts/CourierBold.java
     [xslt] Loading stylesheet /home/elkner/prog/fop/src/codegen/font-file.xsl
     [xslt] Processing
/home/elkner/prog/fop/src/codegen/fonts/CourierBoldOblique.xml to
/home/elkner/prog/fop/build/codegen/org/apache/fop/render/pdf/fonts/CourierBoldOblique.java
     [xslt] home/elkner/prog/fop/src/codegen/font-file.xsl:27:103: Fatal Error!
Unknown error in XPath Cause: java.lang.NullPointerException
     [xslt] : Fatal Error! Fatal error during transformation Cause: Fatal error
during transformation
     [xslt] Failed to process
/home/elkner/prog/fop/src/codegen/fonts/CourierBoldOblique.xml

BUILD FAILED
file:/home/elkner/prog/fop/build.xml:228: Fatal error during transformation
        at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:476)
        at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:240)
        at org.apache.tools.ant.Task.perform(Task.java:319)
        at org.apache.tools.ant.Target.execute(Target.java:309)
        at org.apache.tools.ant.Target.performTasks(Target.java:336)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
        at org.apache.tools.ant.Main.runBuild(Main.java:610)
        at org.apache.tools.ant.Main.start(Main.java:196)
        at org.apache.tools.ant.Main.main(Main.java:235)
Caused by: Fatal error during transformation
        at
org.apache.tools.ant.taskdefs.optional.TraXLiaison.fatalError(TraXLiaison.java:241)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1226)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at
org.apache.tools.ant.taskdefs.optional.TraXLiaison.transform(TraXLiaison.java:188)
        at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:466)
        ... 9 more
...
 Nested Exception ---
; SystemID: file:///home/elkner/prog/fop/src/codegen/font-file.xsl; Line#: 27;
Column#: 103
javax.xml.transform.TransformerException: Unknown error in XPath
        at org.apache.xpath.XPath.bool(XPath.java:411)
        at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:162)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:423)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at
org.apache.tools.ant.taskdefs.optional.TraXLiaison.transform(TraXLiaison.java:188)
        at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:466)
        at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:240)
        at org.apache.tools.ant.Task.perform(Task.java:319)
        at org.apache.tools.ant.Target.execute(Target.java:309)
        at org.apache.tools.ant.Target.performTasks(Target.java:336)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
        at org.apache.tools.ant.Main.runBuild(Main.java:610)
        at org.apache.tools.ant.Main.start(Main.java:196)
        at org.apache.tools.ant.Main.main(Main.java:235)
Caused by: java.lang.NullPointerException
        at org.apache.xpath.objects.XNodeSet.getStringFromNode(XNodeSet.java:235)
        at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:619)
        at org.apache.xpath.objects.XNodeSet.notEquals(XNodeSet.java:725)
        at org.apache.xpath.objects.XObject.notEquals(XObject.java:678)
        at org.apache.xpath.operations.NotEquals.operate(NotEquals.java:82)
        at org.apache.xpath.operations.Operation.execute(Operation.java:146)
        at org.apache.xpath.Expression.bool(Expression.java:208)
        at org.apache.xpath.XPath.bool(XPath.java:388)
        ... 20 more
---------
...
---------
java.lang.NullPointerException
        at org.apache.xpath.objects.XNodeSet.getStringFromNode(XNodeSet.java:235)
        at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:619)
        at org.apache.xpath.objects.XNodeSet.notEquals(XNodeSet.java:725)
        at org.apache.xpath.objects.XObject.notEquals(XObject.java:678)
        at org.apache.xpath.operations.NotEquals.operate(NotEquals.java:82)
        at org.apache.xpath.operations.Operation.execute(Operation.java:146)
        at org.apache.xpath.Expression.bool(Expression.java:208)
        at org.apache.xpath.XPath.bool(XPath.java:388)
        at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:162)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:423)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:226)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2182)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2008)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1171)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:638)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at
org.apache.tools.ant.taskdefs.optional.TraXLiaison.transform(TraXLiaison.java:188)
        at org.apache.tools.ant.taskdefs.XSLTProcess.process(XSLTProcess.java:466)
        at org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:240)
        at org.apache.tools.ant.Task.perform(Task.java:319)
        at org.apache.tools.ant.Target.execute(Target.java:309)
        at org.apache.tools.ant.Target.performTasks(Target.java:336)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1250)
        at org.apache.tools.ant.Main.runBuild(Main.java:610)
        at org.apache.tools.ant.Main.start(Main.java:196)
        at org.apache.tools.ant.Main.main(Main.java:235)
-----debug output end -----


-----src/codegen/font-file.xsl snippez starts ---
...
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text"/>

  <xsl:param name="encoding" select="/font-metrics/encoding"/>
  <xsl:variable name="native-encoding" select="/font-metrics/encoding"/>
  <xsl:variable name="glyphs"
select="document('encodings.xml')/encoding-set/encoding[@id=$encoding]/glyph"/>

  <xsl:template match="font-metrics">
package org.apache.fop.render.pdf.fonts;

import org.apache.fop.render.pdf.Font;
import org.apache.fop.render.pdf.CodePointMapping;

public class <xsl:value-of select="class-name"/> extends Font {
    private final static String fontName = "<xsl:value-of select="font-name"/>";
    private final static String encoding = <xsl:choose><xsl:when test="$encoding
!= $native-encoding">"<xsl:value-of
select="$encoding"/>"</xsl:when><xsl:otherwise>null</xsl:otherwise></xsl:choose>;
-----src/codegen/font-file.xsl snippez starts ---

The last line is line 27, where the ant breaks.



So I guess, there was something wrong with the parameters and tried to
reconfigure the transformer, but without any luck.
So the only fix I found to get it work is the following patch:

diff -Nbaur
jakarta-ant-1.5.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
ant-1.5.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java
--- jakarta-ant-1.5.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java 
Wed Oct  2 17:09:03 2002
+++ ant-1.5.1/src/main/org/apache/tools/ant/taskdefs/XSLTProcess.java   Tue Oct
22 02:26:48 2002
@@ -707,7 +707,7 @@
      * @exception BuildException if the stylesheet cannot be loaded.
      */
     protected void configureLiaison(File stylesheet) throws BuildException {
-        if (stylesheetLoaded) {
+        if (stylesheetLoaded && ! (liaison instanceof TraXLiaison)) {
             return;
         }
         stylesheetLoaded = true;


I'm not sure, whether this is more crimson or more ant related ..., however,
this needs to be fixed ASAP, since many people use JDK1.4.1 + ant, only.

Regards,
jens.

Complete bugreport is on http://www.linofee.org/~elkner/jakarta/

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>