You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2009/11/23 17:18:16 UTC
svn commit: r883392 - in /mina/sandbox/vysper/trunk/nbxml/src:
main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java
test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java
Author: ngn
Date: Mon Nov 23 16:18:15 2009
New Revision: 883392
URL: http://svn.apache.org/viewvc?rev=883392&view=rev
Log:
Fix a bug where the renderer would not correctly reset a default namespace
Modified:
mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java
mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java
Modified: mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java?rev=883392&r1=883391&r2=883392&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java (original)
+++ mina/sandbox/vysper/trunk/nbxml/src/main/java/org/apache/vysper/xmpp/xmlfragment/StackNamespaceResolver.java Mon Nov 23 16:18:15 2009
@@ -80,6 +80,13 @@
// restore stack
push(topElm);
}
+ } else {
+ // is there a parent in a namespace? if so, we need to reset the default namespace
+ if(elements.size() > 1
+ && elements.get(elements.size() - 2).getNamespaceURI().length() > 0
+ && !ns.containsKey("")) {
+ ns.put("", "");
+ }
}
}
Modified: mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java
URL: http://svn.apache.org/viewvc/mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java?rev=883392&r1=883391&r2=883392&view=diff
==============================================================================
--- mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java (original)
+++ mina/sandbox/vysper/trunk/nbxml/src/test/java/org/apache/vysper/xmpp/xmlfragment/RendererTestCase.java Mon Nov 23 16:18:15 2009
@@ -128,6 +128,25 @@
assertRendering("<foo xmlns=\"http://example.com\" xmlns:pr=\"http://other.com\"><pr:bar></pr:bar></foo>", builder.getFinalElement());
}
+ public void testRenderInnerInheritedDefaultNamespaceElement() {
+ XMLElementBuilder builder = new XMLElementBuilder("foo", "http://example.com");
+ builder.startInnerElement("bar", "http://example.com");
+ assertRendering("<foo xmlns=\"http://example.com\"><bar></bar></foo>", builder.getFinalElement());
+ }
+
+ public void testRenderInnerInheritedNamespaceElement() {
+ XMLElementBuilder builder = new XMLElementBuilder("foo", "http://example.com");
+ builder.startInnerElement("bar", "http://other.com");
+ assertRendering("<foo xmlns=\"http://example.com\"><bar xmlns=\"http://other.com\"></bar></foo>", builder.getFinalElement());
+ }
+
+
+ public void testRenderInnerNoNamespaceElement() {
+ XMLElementBuilder builder = new XMLElementBuilder("foo", "http://example.com");
+ builder.startInnerElement("bar");
+ assertRendering("<foo xmlns=\"http://example.com\"><bar xmlns=\"\"></bar></foo>", builder.getFinalElement());
+ }
+
public void testRenderSimpleText() {
XMLElement elm = new XMLElement(null, "foo", null, null, new XMLFragment[]{
new XMLText("bar")