Author: norman
Date: Sat May  8 07:22:55 2010
New Revision: 942331

URL: http://svn.apache.org/viewvc?rev=942331&view=rev
Log:
Fix NPE when specify no domain in domainlist.xml (JAMES-998)

Modified:
    
james/server/trunk/core-function/src/main/java/org/apache/james/domain/XMLDomainList.java
    
james/server/trunk/core-function/src/test/java/org/apache/james/domain/XMLDomainListTest.java

Modified: 
james/server/trunk/core-function/src/main/java/org/apache/james/domain/XMLDomainList.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-function/src/main/java/org/apache/james/domain/XMLDomainList.java?rev=942331&r1=942330&r2=942331&view=diff
==============================================================================
--- 
james/server/trunk/core-function/src/main/java/org/apache/james/domain/XMLDomainList.java
 (original)
+++ 
james/server/trunk/core-function/src/main/java/org/apache/james/domain/XMLDomainList.java
 Sat May  8 07:22:55 2010
@@ -25,9 +25,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.Configurable;
@@ -38,7 +35,7 @@ import org.apache.james.lifecycle.Config
  */
 public class XMLDomainList extends AbstractDomainList implements Configurable{
     
-    private List<String> domainNames = null;
+    private List<String> domainNames = new ArrayList<String>();
     
     private boolean managementDisabled = false;
     
@@ -46,11 +43,13 @@ public class XMLDomainList extends Abstr
      * (non-Javadoc)
      * @see 
org.apache.james.lifecycle.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
      */
-       public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
+       @SuppressWarnings("unchecked")
+    public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
                List<String> serverNameConfs = config.getList( 
"domainnames.domainname" );
         for ( int i = 0; i < serverNameConfs.size(); i++ ) {
             addDomainInternal( serverNameConfs.get(i));
         }
+        
         setAutoDetect(config.getBoolean("autodetect", true));    
         setAutoDetectIP(config.getBoolean("autodetectIP", true));    
     }
@@ -73,7 +72,6 @@ public class XMLDomainList extends Abstr
      * @see 
org.apache.james.api.domainlist.DomainList#containsDomain(java.lang.String)
      */
     public boolean containsDomain(String domains) {
-        if (domainNames == null) return false;
         return domainNames.contains(domains);
     }
 
@@ -86,10 +84,6 @@ public class XMLDomainList extends Abstr
         // TODO: Remove later. Temporary fix to get sure no domains can be 
added to the XMLDomainList
         if (managementDisabled) throw new 
UnsupportedOperationException("Management not supported");
         
-        if (domainNames == null) {
-            domainNames = new ArrayList<String>();
-        }
-    
         String newDomain = domain.toLowerCase(Locale.US);
         if (containsDomain(newDomain) == false) {
             domainNames.add(newDomain);
@@ -106,7 +100,6 @@ public class XMLDomainList extends Abstr
         // TODO: Remove later. Temporary fix to get sure no domains can be 
added to the XMLDomainList
         if (managementDisabled) throw new 
UnsupportedOperationException("Management not supported");
        
-        if (domainNames == null) return false;
         return domainNames.remove(domain.toLowerCase(Locale.US));
     }
 }

Modified: 
james/server/trunk/core-function/src/test/java/org/apache/james/domain/XMLDomainListTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-function/src/test/java/org/apache/james/domain/XMLDomainListTest.java?rev=942331&r1=942330&r2=942331&view=diff
==============================================================================
--- 
james/server/trunk/core-function/src/test/java/org/apache/james/domain/XMLDomainListTest.java
 (original)
+++ 
james/server/trunk/core-function/src/test/java/org/apache/james/domain/XMLDomainListTest.java
 Sat May  8 07:22:55 2010
@@ -65,6 +65,19 @@ public class XMLDomainListTest extends T
         return dns;
     }
 
+
+
+    // See https://issues.apache.org/jira/browse/JAMES-998
+    public void testNoConfiguredDomains() throws Exception {
+        List<String> domains = new ArrayList<String>();
+        XMLDomainList dom = new XMLDomainList();
+        dom.setLog(new SimpleLog("MockLog"));
+        dom.configure(setUpConfiguration(false, false, domains));
+        dom.setDNSService(setUpDNSServer("localhost"));
+
+        assertTrue("No domain found", dom.getDomains().isEmpty());
+    }
+
     public void testGetDomains() throws Exception {
         List<String> domains = new ArrayList<String>();
         domains.add("domain1.");



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to