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]