You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by ie...@apache.org on 2012/09/26 19:21:26 UTC
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/
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<String> implements Serializable {
+public final class DomainList extends AbstractList<String> implements Serializable {
private static final long serialVersionUID = 1L;
private final List<String> 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<String> domains, boolean dontCopy) {
- if (domains != null)
- this.domains = dontCopy ? domains : new ArrayList<String>(domains);
- else
- this.domains = Collections.emptyList();
+ public DomainList(List<String> domains) {
+ this.domains = (domains == null) ? Collections.<String>emptyList():new ArrayList<String>(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.<String> emptyList(), true);
+ Collections.<String> 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<String> al = new ArrayList<String>();
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<String>(
- 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);