mkwan       2003/03/20 11:16:31

  Modified:    java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
                        DTMDefaultBase.java
  Log:
  Fix a bug for testcase axes129.
  DTMDefaultBase.getFirstNamespaceNode() should return NULL when
  the given node is not an element. axes129 passed in both
  Xalan and XSLTC_DTM after this change.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.28.2.18 +17 -6     
xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBase.java
  
  Index: DTMDefaultBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBase.java,v
  retrieving revision 1.28.2.17
  retrieving revision 1.28.2.18
  diff -u -r1.28.2.17 -r1.28.2.18
  --- DTMDefaultBase.java       3 Mar 2003 15:51:42 -0000       1.28.2.17
  +++ DTMDefaultBase.java       20 Mar 2003 19:16:31 -0000      1.28.2.18
  @@ -1498,11 +1498,17 @@
     {
           if(inScope)
           {
  -            SuballocatedIntVector 
nsContext=findNamespaceContext(makeNodeIdentity(nodeHandle));
  -            if(nsContext==null || nsContext.size()<1)
  -              return NULL;
  +            int identity = makeNodeIdentity(nodeHandle);
  +            if (_type(identity) == DTM.ELEMENT_NODE)
  +            {
  +              SuballocatedIntVector nsContext=findNamespaceContext(identity);
  +              if(nsContext==null || nsContext.size()<1)
  +                return NULL;
   
  -            return nsContext.elementAt(0);
  +              return nsContext.elementAt(0);
  +            }
  +            else
  +              return NULL;
             }
           else
             {
  @@ -1513,7 +1519,9 @@
               // before all Attr nodes? Some costs at build time for 2nd
               // pass...
               int identity = makeNodeIdentity(nodeHandle);
  -            while (DTM.NULL != (identity = getNextNodeIdentity(identity)))
  +            if (_type(identity) == DTM.ELEMENT_NODE)
  +            {
  +              while (DTM.NULL != (identity = getNextNodeIdentity(identity)))
                 {
                   int type = _type(identity);
                   if (type == DTM.NAMESPACE_NODE)
  @@ -1521,7 +1529,10 @@
                   else if (DTM.ATTRIBUTE_NODE != type)
                       break;
                 }
  -            return NULL;
  +              return NULL;
  +            }
  +            else
  +              return NULL;
             }
     }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to