Hello,

I have a strange problem... I have a XML and a XSL. Sometimes it works,
sometime not....

I'm working with xalan 2.3.4

here is my XSL:
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:output method="xml" omit-xml-declaration="yes"/>

  <xsl:template match="/">
    <xsl:variable name="uDocuments"
select="//object[object_name='uDocuments']" />
    
    <root>
      <UploadRootfolder name="{$uDocuments/object_name}"
id="{$uDocuments/@ID}" isUploadFolder="true">
        <xsl:call-template name="createTreeLevel">
          <xsl:with-param name="level" select="0" />
          <xsl:with-param name="node"
select="//object[i_folder_id=$uDocuments/@ID]" />
        </xsl:call-template>
      </UploadRootfolder>

      <xsl:call-template name="createTreeLevel">
        <xsl:with-param name="level" select="0" />
        <xsl:with-param name="node"
select="//object[i_folder_id=$uDocuments/i_folder_id and object_name !=
'uDocuments']" />
      </xsl:call-template>
    </root>

  </xsl:template>

  <xsl:template name="createTreeLevel">
    <xsl:param name="level" />
    <xsl:param name="node" />

    <xsl:for-each select="$node">
      <xsl:sort select="object_name" order="ascending"/>

      <xsl:variable name="LevelId" select="@ID" />

      <xsl:choose>
        <xsl:when test="r_object_type = 'wcm_folder'">
          <xsl:choose>
            <xsl:when test="a_is_upload_doc_folder = 1">
              <Uploadfolder name="{object_name}" id="[EMAIL PROTECTED]"
isUploadFolder="true">
                <xsl:call-template name="createTreeLevel">
                  <xsl:with-param name="level" select="$level" />
                  <xsl:with-param name="node"
select="//object[i_folder_id=$LevelId]" />
                </xsl:call-template>
              </Uploadfolder>
            </xsl:when>
            <xsl:otherwise>
              <folder name="{object_name}" id="[EMAIL PROTECTED]">
                <xsl:call-template name="createTreeLevel">
                  <xsl:with-param name="level" select="$level" />
                  <xsl:with-param name="node"
select="//object[i_folder_id=$LevelId]" />
                </xsl:call-template>
              </folder>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:choose>
            <xsl:when test="wcm_object_type = 'uploaded'">
              <Uploaddocument name="{object_name}" id="[EMAIL PROTECTED]" 
currentstate="{r_current_state}" language="{wcm_language}">
                <xsl:attribute name="isUploaded">
                  <xsl:choose>
                    <xsl:when test="wcm_object_type = 'uploaded'">
                      <xsl:text>true</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text>false</xsl:text>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="checkedoutstatus">
                  <xsl:choose>
                    <xsl:when test="r_lock_owner != ''">
                      <xsl:text>true</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text>false</xsl:text>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
              </Uploaddocument>
            </xsl:when>
            <xsl:otherwise>
              <document name="{object_name}" id="[EMAIL PROTECTED]"
currentstate="{r_current_state}" r_lock_owner="{r_lock_owner}"
language="{wcm_language}">
                <xsl:attribute name="checkedoutstatus">
                  <xsl:choose>
                    <xsl:when test="r_lock_owner != ''">
                      <xsl:text>true</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text>false</xsl:text>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="isWorkflowEnabled">
                  <xsl:choose>
                    <xsl:when test="isworkflowenabled = 1">
                      <xsl:text>true</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text>false</xsl:text>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
                <xsl:attribute name="isUploaded">
                  <xsl:choose>
                    <xsl:when test="wcm_object_type = 'uploaded'">
                      <xsl:text>true</xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text>false</xsl:text>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:attribute>
              </document>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

with that XML it works
<root>
    <object ID="0900348b8003df71">
        <object_name>LogoCountry_fr_FR.gif</object_name>
        <r_object_type>wcm_copy_document</r_object_type>
        <r_object_id>0900348b8003df71</r_object_id>
        <i_folder_id>0b00348b8003df5f</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>uploaded</wcm_object_type>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df72">
        <object_name>LogoCountry_nl_NL.gif</object_name>
        <r_object_type>wcm_copy_document</r_object_type>
        <r_object_id>0900348b8003df72</r_object_id>
        <i_folder_id>0b00348b8003df5f</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>uploaded</wcm_object_type>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0b00348b8003e247">
        <object_name>Parfait</object_name>
        <r_object_type>wcm_folder</r_object_type>
        <r_object_id>0b00348b8003e247</r_object_id>
        <i_folder_id>0b00348b8003df60</i_folder_id>
        <r_current_state>0</r_current_state>
        <a_is_upload_doc_folder>1</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df76">
        <object_name>constantlib.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df76</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df70">
        <object_name>site_const.asp</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df70</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df6e">
        <object_name>siteinfo.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df6e</r_object_id>
        <i_folder_id>0b00348b8003df64</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df6f">
        <object_name>sitevisual.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df6f</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0b00348b8003df60">
        <object_name>uDocuments</object_name>
        <r_object_type>wcm_folder</r_object_type>
        <r_object_id>0b00348b8003df60</r_object_id>
        <i_folder_id>0c00348b8003df5e</i_folder_id>
        <r_current_state>0</r_current_state>
        <a_is_upload_doc_folder>1</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003e211">
        <object_name>yo_fr_FR.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003e211</r_object_id>
        <i_folder_id>0c00348b8003df5e</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>page</wcm_object_type>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language>fr_FR</wcm_language>
    </object>
    <object ID="0900348b8003df74">
        <object_name>z_20060321a.css</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df74</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
</root>

Result
<root>
  <UploadRootfolder isUploadFolder="true" id="0b00348b8003df60"
name="uDocuments">
    <Uploadfolder isUploadFolder="true" id="0b00348b8003e247"
name="Parfait"/>
  </UploadRootfolder>
  <document language="fr_FR" r_lock_owner="" currentstate="3"
id="0900348b8003e211" name="yo_fr_FR.xml" checkedoutstatus="false"
isWorkflowEnabled="false" isUploaded="false"/>
</root>[/code]

[b]with that one it does not[/b][code]<root>
    <object ID="0b00348b8003e248">
        <object_name>FolderVide</object_name>
        <r_object_type>wcm_folder</r_object_type>
        <r_object_id>0b00348b8003e248</r_object_id>
        <i_folder_id>0b00348b8003df60</i_folder_id>
        <r_current_state>0</r_current_state>
        <a_is_upload_doc_folder>1</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df71">
        <object_name>LogoCountry_fr_FR.gif</object_name>
        <r_object_type>wcm_copy_document</r_object_type>
        <r_object_id>0900348b8003df71</r_object_id>
        <i_folder_id>0b00348b8003df5f</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>uploaded</wcm_object_type>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df72">
        <object_name>LogoCountry_nl_NL.gif</object_name>
        <r_object_type>wcm_copy_document</r_object_type>
        <r_object_id>0900348b8003df72</r_object_id>
        <i_folder_id>0b00348b8003df5f</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>uploaded</wcm_object_type>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df76">
        <object_name>constantlib.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df76</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df70">
        <object_name>site_const.asp</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df70</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df6e">
        <object_name>siteinfo.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df6e</r_object_id>
        <i_folder_id>0b00348b8003df64</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003df6f">
        <object_name>sitevisual.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df6f</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0b00348b8003df60">
        <object_name>uDocuments</object_name>
        <r_object_type>wcm_folder</r_object_type>
        <r_object_id>0b00348b8003df60</r_object_id>
        <i_folder_id>0c00348b8003df5e</i_folder_id>
        <r_current_state>0</r_current_state>
        <a_is_upload_doc_folder>1</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>1</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
    <object ID="0900348b8003e211">
        <object_name>yo_fr_FR.xml</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003e211</r_object_id>
        <i_folder_id>0c00348b8003df5e</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type>page</wcm_object_type>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language>fr_FR</wcm_language>
    </object>
    <object ID="0900348b8003df74">
        <object_name>z_20060321a.css</object_name>
        <r_object_type>wcm_document</r_object_type>
        <r_object_id>0900348b8003df74</r_object_id>
        <i_folder_id>0b00348b8003df61</i_folder_id>
        <r_current_state>3</r_current_state>
        <a_is_upload_doc_folder>0</a_is_upload_doc_folder>
        <wcm_object_type/>
        <isworkflowenabled>0</isworkflowenabled>
        <r_lock_owner/>
        <wcm_language/>
    </object>
</root>

Result:
0 [main] WARN com.documentum.fc.common.DfLogger  - Failed to load
log4j.properties. Using default log4j configuration
Warning: popContextNodeList when stack is empty!
2812 [main] ERROR com.aventis.wcm.xmlhandler.Transformation  -
javax.xml.transform.TransformerException: java.lang.NullPointerException
; Line#: 30; Column#: 34
javax.xml.transform.TransformerException: java.lang.NullPointerException
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2263)
        at 
org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
        at
org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:273)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2081)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1137)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:600)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1054)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1032)
        at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:599)
        at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
        at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
        at 
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)
Caused by: java.lang.NullPointerException
        at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:250)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at
org.apache.xpath.axes.FilterExprWalker.getNextNode(FilterExprWalker.java:235)
        at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:400)
        at 
org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:165)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:538)
        at org.apache.xpath.objects.XNodeSet.equals(XNodeSet.java:736)
        at org.apache.xpath.operations.Equals.operate(Equals.java:84)
        at org.apache.xpath.operations.Operation.execute(Operation.java:150)
        at
org.apache.xpath.axes.PredicatedNodeTest.executePredicates(PredicatedNodeTest.java:326)
        at
org.apache.xpath.axes.PredicatedNodeTest.acceptNode(PredicatedNodeTest.java:458)
        at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:264)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:474)
        at 
org.apache.xalan.templates.ElemForEach.sortNodes(ElemForEach.java:340)
        at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:383)
        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        ... 16 more
---------
java.lang.NullPointerException
        at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:250)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at
org.apache.xpath.axes.FilterExprWalker.getNextNode(FilterExprWalker.java:235)
        at org.apache.xpath.axes.AxesWalker.nextNode(AxesWalker.java:400)
        at 
org.apache.xpath.axes.WalkingIterator.nextNode(WalkingIterator.java:165)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at org.apache.xpath.objects.XNodeSet.compare(XNodeSet.java:538)
        at org.apache.xpath.objects.XNodeSet.equals(XNodeSet.java:736)
        at org.apache.xpath.operations.Equals.operate(Equals.java:84)
        at org.apache.xpath.operations.Operation.execute(Operation.java:150)
        at
org.apache.xpath.axes.PredicatedNodeTest.executePredicates(PredicatedNodeTest.java:326)
        at
org.apache.xpath.axes.PredicatedNodeTest.acceptNode(PredicatedNodeTest.java:458)
        at
org.apache.xpath.axes.DescendantIterator.nextNode(DescendantIterator.java:264)
        at org.apache.xpath.axes.NodeSequence.nextNode(NodeSequence.java:320)
        at org.apache.xpath.axes.NodeSequence.runTo(NodeSequence.java:474)
        at 
org.apache.xalan.templates.ElemForEach.sortNodes(ElemForEach.java:340)
        at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.java:383)
        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at 
org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:432)
        at
org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate.java:273)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:710)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2258)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2081)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1137)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:600)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1054)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1032)
        at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:599)
        at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
        at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
        at 
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)
com.aventis.wcm.exception.WcmSystemException: error while applying
stylesheet
        at
com.aventis.wcm.xmlhandler.Transformation.applyStyleSheet(Transformation.java:605)
        at
com.sanofiaventis.documentum.CreateNavTree.applyXslFromString(CreateNavTree.java:150)
        at
com.sanofiaventis.documentum.CreateNavTree.getFolderContentStructure(CreateNavTree.java:98)
        at 
com.sanofiaventis.documentum.CreateNavTree.main(CreateNavTree.java:211)

Thanks for your help

Patrick
--
View this message in context: 
http://www.nabble.com/-xalan-Transform-Error-t1323380.html#a3530719
Sent from the Xalan - J - Users forum at Nabble.com.

Reply via email to