Return-Path: X-Original-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Delivered-To: apmail-james-mime4j-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EE11EDD27 for ; Wed, 26 Sep 2012 17:22:11 +0000 (UTC) Received: (qmail 30516 invoked by uid 500); 26 Sep 2012 17:22:11 -0000 Delivered-To: apmail-james-mime4j-dev-archive@james.apache.org Received: (qmail 30445 invoked by uid 500); 26 Sep 2012 17:22:11 -0000 Mailing-List: contact mime4j-dev-help@james.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mime4j-dev@james.apache.org Delivered-To: mailing list mime4j-dev@james.apache.org Received: (qmail 30430 invoked by uid 99); 26 Sep 2012 17:22:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 17:22:10 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 26 Sep 2012 17:22:09 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A3F1323889BF; Wed, 26 Sep 2012 17:21:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1390619 - in /james/mime4j/trunk/dom/src: main/java/org/apache/james/mime4j/dom/address/ main/java/org/apache/james/mime4j/field/address/ test/java/org/apache/james/mime4j/field/address/ Date: Wed, 26 Sep 2012 17:21:26 -0000 To: mime4j-dev@james.apache.org From: ieugen@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120926172126.A3F1323889BF@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ieugen Date: Wed Sep 26 17:21:25 2012 New Revision: 1390619 URL: http://svn.apache.org/viewvc?rev=1390619&view=rev Log: Made DomainList immutable, fixes MIME4J-217 Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/DomainList.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/Mailbox.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressBuilder.java james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/AddressTest.java james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/DefaultAddressFormatterTest.java Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/DomainList.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/DomainList.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/DomainList.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/DomainList.java Wed Sep 26 17:21:25 2012 @@ -29,24 +29,17 @@ import java.util.List; * An immutable, random-access list of Strings (that are supposedly domain names * or domain literals). */ -public class DomainList extends AbstractList implements Serializable { +public final class DomainList extends AbstractList implements Serializable { private static final long serialVersionUID = 1L; private final List domains; /** - * @param domains - * A List that contains only String objects. - * @param dontCopy - * true iff it is not possible for the domains list to be - * modified by someone else. + * @param domains A List that contains only String objects. */ - public DomainList(List domains, boolean dontCopy) { - if (domains != null) - this.domains = dontCopy ? domains : new ArrayList(domains); - else - this.domains = Collections.emptyList(); + public DomainList(List domains) { + this.domains = (domains == null) ? Collections.emptyList():new ArrayList(domains); } /** Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/Mailbox.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/Mailbox.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/Mailbox.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/address/Mailbox.java Wed Sep 26 17:21:25 2012 @@ -33,7 +33,7 @@ public class Mailbox extends Address { private static final long serialVersionUID = 1L; private static final DomainList EMPTY_ROUTE_LIST = new DomainList( - Collections. emptyList(), true); + Collections. emptyList()); private final String name; private final DomainList route; Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/Builder.java Wed Sep 26 17:21:25 2012 @@ -164,7 +164,7 @@ class Builder { else throw new ParseException(); } - return new DomainList(results, true); + return new DomainList(results); } private Mailbox buildAddrSpec(ASTaddr_spec node) { Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressBuilder.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressBuilder.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressBuilder.java (original) +++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/field/address/LenientAddressBuilder.java Wed Sep 26 17:21:25 2012 @@ -124,7 +124,7 @@ public class LenientAddressBuilder { break; } } - return domains != null ? new DomainList(domains, true) : null; + return domains != null ? new DomainList(domains) : null; } private Mailbox createMailbox( Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/AddressTest.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/AddressTest.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/AddressTest.java (original) +++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/AddressTest.java Wed Sep 26 17:21:25 2012 @@ -57,7 +57,7 @@ public class AddressTest extends TestCas public void testEmptyDomainList() { - DomainList dl = new DomainList(null, false); + DomainList dl = new DomainList(null); assertEquals(0, dl.size()); try { @@ -77,14 +77,14 @@ public class AddressTest extends TestCas List al = new ArrayList(); al.add("example.com"); - // shared arraylist - DomainList dl = new DomainList(al, true); + // changing the list passed does not change DomainList's state + DomainList dl = new DomainList(al); assertEquals(1, dl.size()); al.add("foo.example.com"); - assertEquals(2, dl.size()); + assertEquals(1, dl.size()); // cloned arraylist - DomainList dlcopy = new DomainList(al, false); + DomainList dlcopy = new DomainList(al); assertEquals(2, dlcopy.size()); al.add("bar.example.com"); assertEquals(2, dlcopy.size()); Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/DefaultAddressFormatterTest.java URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/DefaultAddressFormatterTest.java?rev=1390619&r1=1390618&r2=1390619&view=diff ============================================================================== --- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/DefaultAddressFormatterTest.java (original) +++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/address/DefaultAddressFormatterTest.java Wed Sep 26 17:21:25 2012 @@ -44,7 +44,7 @@ public class DefaultAddressFormatterTest al.add(new Mailbox("test", "example.com")); al.add(new Mailbox("Foo!", "foo", "example.com")); DomainList dl = new DomainList(new ArrayList( - Arrays.asList(new String[] {"foo.example.com"})), true); + Arrays.asList(new String[] {"foo.example.com"}))); Mailbox mailbox = new Mailbox("Foo Bar", dl, "foo2", "example.com"); assertSame(dl, mailbox.getRoute()); al.add(mailbox);