svn commit: r1922110 - in /geronimo/specs/trunk/geronimo-mail_2.1_spec/src: main/java/jakarta/mail/internet/InternetHeaders.java test/java/jakarta/mail/internet/InternetHeadersTest.java

[email protected] Tue, 26 Nov 2024 10:00:36 -0000
Newsgroups gmane.comp.java.geronimo.cvs
Message-ID <[email protected]>
Author: rzo1
Date: Tue Nov 26 10:00:35 2024
New Revision: 1922110

URL: http://svn.apache.org/viewvc?rev=1922110&view=rev
Log:
GERONIMO-6871 - InternetHeaders to rejects well-formed headers

Patch by Markus Jung <[email protected]>

Modified:
    geronimo/specs/trunk/geronimo-mail_2.1_spec/src/main/java/jakarta/mail/internet/InternetHeaders.java
    geronimo/specs/trunk/geronimo-mail_2.1_spec/src/test/java/jakarta/mail/internet/InternetHeadersTest.java

Modified: geronimo/specs/trunk/geronimo-mail_2.1_spec/src/main/java/jakarta/mail/internet/InternetHeaders.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-mail_2.1_spec/src/main/java/jakarta/mail/internet/InternetHeaders.java?rev=1922110&r1=1922109&r2=1922110&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-mail_2.1_spec/src/main/java/jakarta/mail/internet/InternetHeaders.java (original)
+++ geronimo/specs/trunk/geronimo-mail_2.1_spec/src/main/java/jakarta/mail/internet/InternetHeaders.java Tue Nov 26 10:00:35 2024
@@ -46,7 +46,7 @@ public class InternetHeaders {
         @Override
         public boolean add(final InternetHeader o) {
             if ("Received".equals(o.getName()) || "Return-Path".equals(o.getName())) {
-                super.add(o);
+                return super.add(o);
             }
             assertNoDuplicates(o);
             return super.add(o);
@@ -67,6 +67,7 @@ public class InternetHeaders {
         public void add(final int index, final InternetHeader o) {
             if ("Received".equals(o.getName()) || "Return-Path".equals(o.getName())) {
                 super.add(o);
+                return;
             }
             assertNoDuplicates(o);
             super.add(index, o);

Modified: geronimo/specs/trunk/geronimo-mail_2.1_spec/src/test/java/jakarta/mail/internet/InternetHeadersTest.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-mail_2.1_spec/src/test/java/jakarta/mail/internet/InternetHeadersTest.java?rev=1922110&r1=1922109&r2=1922110&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-mail_2.1_spec/src/test/java/jakarta/mail/internet/InternetHeadersTest.java (original)
+++ geronimo/specs/trunk/geronimo-mail_2.1_spec/src/test/java/jakarta/mail/internet/InternetHeadersTest.java Tue Nov 26 10:00:35 2024
@@ -43,4 +43,29 @@ public class InternetHeadersTest extends
     protected void setUp() throws Exception {
         headers = new InternetHeaders();
     }
+
+
+    public void testReturnPathHeaderIgnored() throws MessagingException {
+        headers.addHeader("Return-Path", "first");
+        headers.addHeader("Return-Path", "second");
+    }
+
+    public void testReceivedHeaderIgnored() throws MessagingException {
+        headers.addHeader("Received", "first");
+        headers.addHeader("Received", "second");
+    }
+
+    public void testOtherHeaderNotDuplicated() throws MessagingException {
+        headers.addHeader("Other", "first");
+    }
+
+    public void testActuallyDuplicatedHeader() throws MessagingException {
+        headers.addHeader("Other", "first");
+        try {
+            headers.addHeader("Other", "second");
+            fail("No exception thrown");
+        } catch (IllegalStateException e) {
+            assertEquals("InternetHeaders cannot contain more than one value for header: Other", e.getMessage());
+        }
+    }
 }