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")