You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by zo...@apache.org on 2005/01/20 17:59:35 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/serialize SerializerUtils.java
zongaro 2005/01/20 08:59:35
Modified: java/src/org/apache/xalan/serialize SerializerUtils.java
Log:
Applying patch for Jira bug report XALANJ-1640.
As it's currently written, SerializerUtils.outputResultTreeFragment loops
through the nodes in a result tree fragment, and for each one, it checks
whether the node is in some namespace. If it is not, the code undeclares the
default namespace by calling handler.startPrefixMapping("", ""). The problem
is that if the RTF that's being copied just consists of a text node (or PIs or
comments), that undeclaration of the default namespace hangs around until some
subsequent child element picks it up as one of its attributes, even if that
element is in some namespace - even what should be the default!
The fix is to check whether the node that is being output is an element node
prior to issuing the handler.startPrefixMapping call - that ensures the prefix
mapping is not issued unless it's actually going to be used by the node that is
about to be serialized.
This patch was reviewed by Brian Minchau (minchau () ca ! ibm ! com).
Revision Changes Path
1.4 +5 -3 xml-xalan/java/src/org/apache/xalan/serialize/SerializerUtils.java
Index: SerializerUtils.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/serialize/SerializerUtils.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SerializerUtils.java 16 Feb 2004 20:27:14 -0000 1.3
+++ SerializerUtils.java 20 Jan 2005 16:59:34 -0000 1.4
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -130,9 +130,11 @@
n = dtm.getNextSibling(n))
{
handler.flushPending();
+
// I think. . . . This used to have a (true) arg
// to flush prefixes, will that cause problems ???
- if (dtm.getNamespaceURI(n) == null)
+ if (dtm.getNodeType(n) == DTM.ELEMENT_NODE
+ && dtm.getNamespaceURI(n) == null)
handler.startPrefixMapping("", "");
dtm.dispatchToEvents(n, handler);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org