You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@apache.org on 2001/02/20 04:06:58 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/lib/sql ColumnHeader.java RowSet.java XStatement.java

sboag       01/02/19 19:06:58

  Modified:    java/src/org/apache/xalan/lib/sql ColumnHeader.java
                        RowSet.java XStatement.java
  Log:
  Use null nodetest to mean the same as "node()".  This fixes a bug reported
  by "Voytenko, Dimitry" <DV...@SECTORBASE.COM>
  where <xsl:copy-of select="sql:query(...)"/>
  crashes with NullPointerException, i.e.
  there are cases where we really don't want
  to set the NodeTest.
  
  Revision  Changes    Path
  1.5       +7 -2      xml-xalan/java/src/org/apache/xalan/lib/sql/ColumnHeader.java
  
  Index: ColumnHeader.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/sql/ColumnHeader.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ColumnHeader.java	2000/12/14 19:06:06	1.4
  +++ ColumnHeader.java	2001/02/20 03:06:57	1.5
  @@ -141,9 +141,10 @@
   
       // try
       {
  -      if (this.getNodeTest().getNamespace() == null)
  +      org.apache.xpath.patterns.NodeTest nt = this.getNodeTest();
  +      if ((null == nt) || nt.getNamespace() == null)
         {
  -        if (this.getNodeTest().getLocalName().equals(
  +        if ((null == nt) || nt.getLocalName().equals(
                   XStatement.S_COLUMNHEADERNAME))
           {
             int nextIndex = m_columnIndex + 1;
  @@ -156,6 +157,10 @@
                                    m_metaData);
   
               return m_parent.m_columnHeaders[nextIndex];
  +          }
  +          else if(nt == null)
  +          {
  +            return new Row(getXStatement(), m_parent);
             }
             else
               return null;
  
  
  
  1.5       +5 -3      xml-xalan/java/src/org/apache/xalan/lib/sql/RowSet.java
  
  Index: RowSet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/sql/RowSet.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RowSet.java	2000/12/14 19:06:07	1.4
  +++ RowSet.java	2001/02/20 03:06:58	1.5
  @@ -116,9 +116,10 @@
   
       try
       {
  -      if (this.getNodeTest().getNamespace() == null)
  +      org.apache.xpath.patterns.NodeTest nt = this.getNodeTest();
  +      if ((null == nt) || nt.getNamespace() == null)
         {
  -        if (this.getNodeTest().getLocalName().equals(
  +        if ((null == nt) || nt.getLocalName().equals(
                   XStatement.S_COLUMNHEADERNAME))
           {
             if (null == m_columnHeaders)
  @@ -141,7 +142,7 @@
             else
               return m_columnHeaders[0];
           }
  -        else if (this.getNodeTest().getLocalName().equals(
  +        else if (nt.getLocalName().equals(
                   XStatement.S_ROWNAME))
           {
             if (null == m_firstrow)
  @@ -164,6 +165,7 @@
         return null;
       }
     }
  +
   
     /**
      * getNextSibling - This always returns null.
  
  
  
  1.9       +3 -2      xml-xalan/java/src/org/apache/xalan/lib/sql/XStatement.java
  
  Index: XStatement.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/lib/sql/XStatement.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XStatement.java	2001/01/04 17:10:46	1.8
  +++ XStatement.java	2001/02/20 03:06:58	1.9
  @@ -385,8 +385,9 @@
   
       try
       {
  -      if ((this.getNodeTest().getNamespace() == null)
  -              && (this.getNodeTest().getLocalName().equals(S_DOCELEMENTNAME)))
  +      org.apache.xpath.patterns.NodeTest nt = this.getNodeTest();
  +      if ((nt == null) || ((nt.getNamespace() == null)
  +              && (nt.getLocalName().equals(S_DOCELEMENTNAME))))
           return m_rowset;
         else
           return null;