dims        2002/11/05 10:43:52

  Modified:    java/src/org/apache/axis/message MessageElement.java
               java/test/message TestMessageElement.java
  Log:
  Fix for Bug 14134 - QName Attributes lose namespace mapping in MessageElement after 
Serialization.
  from [EMAIL PROTECTED] (Christopher Williamson)
  
  Revision  Changes    Path
  1.137     +1 -2      xml-axis/java/src/org/apache/axis/message/MessageElement.java
  
  Index: MessageElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
  retrieving revision 1.136
  retrieving revision 1.137
  diff -u -r1.136 -r1.137
  --- MessageElement.java       5 Nov 2002 16:39:05 -0000       1.136
  +++ MessageElement.java       5 Nov 2002 18:43:52 -0000       1.137
  @@ -722,11 +722,10 @@
               for (int i = 0; i < qNameAttrs.size(); i++) {
                   QNameAttr attr = (QNameAttr)qNameAttrs.get(i);
                   QName attrName = attr.name;
  -                addAttribute(attrName.getNamespaceURI(),
  +                setAttribute(attrName.getNamespaceURI(),
                                attrName.getLocalPart(),
                                context.qName2String(attr.value));
               }
  -            qNameAttrs = null;
           }
   
           /**
  
  
  
  1.8       +18 -4     xml-axis/java/test/message/TestMessageElement.java
  
  Index: TestMessageElement.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/message/TestMessageElement.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TestMessageElement.java   5 Nov 2002 15:53:18 -0000       1.7
  +++ TestMessageElement.java   5 Nov 2002 18:43:52 -0000       1.8
  @@ -59,6 +59,8 @@
   
   import javax.xml.soap.SOAPElement;
   import javax.xml.soap.Name;
  +import javax.xml.namespace.QName;
  +
   import org.apache.axis.soap.SOAPConstants;
   
   import org.apache.axis.message.MessageElement;
  @@ -178,15 +180,27 @@
           assertTrue("Did not find namespace declaration \"pre\"", found);
       }
       
  -    public void testGetNamespacePrefixes() throws Exception {
  +    public void testQNameAttrTest() throws Exception {
           MessageElement me = 
               new MessageElement("http://www.wolfram.com","Test";);
  -        Iterator it = me.getNamespacePrefixes();
  -        assertTrue(it != null);
  +        me.addAttribute(
  +            "http://www.w3.org/2001/XMLSchema-instance";, 
  +            "type",
  +            new QName("http://www.wolfram2.com";, "type1"));
  +        MessageElement me2 = 
  +            new MessageElement("http://www.wolfram.com";, "Child", (Object)"1");
  +        me2.addAttribute(
  +            "http://www.w3.org/2001/XMLSchema-instance";, 
  +            "type",
  +            new QName("http://www.w3.org/2001/XMLSchema";, "int"));
  +        me.addChildElement(me2);
  +        String s1 = me.toString();
  +        String s2 = me.toString();
  +        assertEquals(s1, s2);
       }
       
       public static void main(String[] args) throws Exception {
           TestMessageElement tester = new TestMessageElement("TestMessageElement");
  -        tester.testGetNamespacePrefixes();
  +        tester.testQNameAttrTest();
       }
   }
  
  
  


Reply via email to