[jbossws-commits] JBossWS SVN: r11802 - in stack/native/branches/jbossws-native-3.1.2/modules: testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws and 1 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu Mar 18 05:37:10 EDT 2010


Author: jim.ma
Date: 2010-03-18 05:37:09 -0400 (Thu, 18 Mar 2010)
New Revision: 11802

Added:
   stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2964/
   stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2964/JBWS2964TestCase.java
Modified:
   stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageImpl.java
Log:
[JBPAPP-3941]:Create new mimeHeaders to avoid changing the referenced mimeHeaders

Modified: stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageImpl.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageImpl.java	2010-03-18 09:32:32 UTC (rev 11801)
+++ stack/native/branches/jbossws-native-3.1.2/modules/core/src/main/java/org/jboss/ws/core/soap/SOAPMessageImpl.java	2010-03-18 09:37:09 UTC (rev 11802)
@@ -299,8 +299,15 @@
                   contentType = multipartRelatedEncoder.getContentType();
                }
             }
-
-            mimeHeaders.setHeader(MimeConstants.CONTENT_TYPE, contentType);
+            //JBWS-2964:Create a new mimeHeaders to avoid changing another referenced mimeHeaders
+            MimeHeaders newMimeHeaders = new MimeHeaders();
+            Iterator iterator = mimeHeaders.getAllHeaders();
+            while (iterator.hasNext()) {
+               MimeHeader mimeHeader = (MimeHeader)iterator.next();
+               newMimeHeaders.addHeader(mimeHeader.getName(), mimeHeader.getValue());
+            }
+            newMimeHeaders.setHeader(MimeConstants.CONTENT_TYPE, contentType);
+            setMimeHeaders(newMimeHeaders);
          }
          catch (MessagingException ex)
          {

Added: stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2964/JBWS2964TestCase.java
===================================================================
--- stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2964/JBWS2964TestCase.java	                        (rev 0)
+++ stack/native/branches/jbossws-native-3.1.2/modules/testsuite/native-tests/src/test/java/org/jboss/test/ws/jaxws/jbws2964/JBWS2964TestCase.java	2010-03-18 09:37:09 UTC (rev 11802)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.jbws2964;
+
+import javax.xml.soap.MimeHeaders;
+
+import org.jboss.ws.core.soap.MessageFactoryImpl;
+import org.jboss.ws.core.soap.SOAPMessageImpl;
+import org.jboss.ws.core.soap.attachment.MimeConstants;
+
+import junit.framework.TestCase;
+
+public class JBWS2964TestCase extends TestCase
+{
+   public void testSaveChanges() throws Exception
+   {
+       MessageFactoryImpl mf = new MessageFactoryImpl();
+       SOAPMessageImpl soapMessage = (SOAPMessageImpl)mf.createMessage();
+       MimeHeaders mimeHeaders = new MimeHeaders();
+       mimeHeaders.setHeader(MimeConstants.CONTENT_TYPE,MimeConstants.TYPE_MULTIPART_RELATED);
+       soapMessage.setMimeHeaders(mimeHeaders);
+       
+       SOAPMessageImpl tmp = (SOAPMessageImpl)mf.createMessage();
+       tmp.setMimeHeaders(soapMessage.getMimeHeaders());
+       tmp.saveChanges();
+       
+       assertEquals(MimeConstants.TYPE_MULTIPART_RELATED, soapMessage.getMimeHeaders().getHeader(MimeConstants.CONTENT_TYPE)[0]);
+   }
+
+}



More information about the jbossws-commits mailing list