Index: src/test/java/org/apache/maven/settings/SettingsTest.java =================================================================== --- src/test/java/org/apache/maven/settings/SettingsTest.java (revision 0) +++ src/test/java/org/apache/maven/settings/SettingsTest.java (revision 0) @@ -0,0 +1,33 @@ +package org.apache.maven.settings; + +import java.io.File; + +import junit.framework.TestCase; + +public class SettingsTest extends TestCase { + + private Settings settingsNoProxies; + private Settings settingsOneInactiveProxy; + private Settings settingsOneActiveProxy; + + + protected void setUp() throws Exception { + + super.setUp(); + + // Read different settings files for proxy testing. + DefaultMavenSettingsBuilder settingsBuilder = new DefaultMavenSettingsBuilder(); + settingsNoProxies = settingsBuilder.buildSettings(new File("src/test/resources/org/apache/maven/settings/settings-no-proxies.xml"), false); + settingsOneInactiveProxy = settingsBuilder.buildSettings(new File("src/test/resources/org/apache/maven/settings/settings-one-inactive-proxy.xml"), false); + settingsOneActiveProxy = settingsBuilder.buildSettings(new File("src/test/resources/org/apache/maven/settings/settings-one-active-proxy.xml"), false); + + } + + + public void testProxySettings() { + + assertNull(settingsNoProxies.getActiveProxy()); + assertNull(settingsOneInactiveProxy.getActiveProxy()); + assertNotNull(settingsOneActiveProxy.getActiveProxy()); + } +} Index: src/test/resources/org/apache/maven/settings/settings-no-proxies.xml =================================================================== --- src/test/resources/org/apache/maven/settings/settings-no-proxies.xml (revision 0) +++ src/test/resources/org/apache/maven/settings/settings-no-proxies.xml (revision 0) @@ -0,0 +1,6 @@ + + + + + + Index: src/test/resources/org/apache/maven/settings/settings-one-active-proxy.xml =================================================================== --- src/test/resources/org/apache/maven/settings/settings-one-active-proxy.xml (revision 0) +++ src/test/resources/org/apache/maven/settings/settings-one-active-proxy.xml (revision 0) @@ -0,0 +1,15 @@ + + + + + true + http + proxyuser + proxypass + proxy.host.net + 80 + local.net,some.host.com + + + + Index: src/test/resources/org/apache/maven/settings/settings-one-inactive-proxy.xml =================================================================== --- src/test/resources/org/apache/maven/settings/settings-one-inactive-proxy.xml (revision 0) +++ src/test/resources/org/apache/maven/settings/settings-one-inactive-proxy.xml (revision 0) @@ -0,0 +1,15 @@ + + + + + false + http + proxyuser + proxypass + proxy.host.net + 80 + local.net,some.host.com + + + + Index: src/main/mdo/settings.mdo =================================================================== --- src/main/mdo/settings.mdo (revision 737823) +++ src/main/mdo/settings.mdo (working copy) @@ -295,23 +295,15 @@ java.util.List proxies = getProxies(); if ( proxies != null && !proxies.isEmpty() ) { - if ( proxies.size() > 1 ) + for ( java.util.Iterator it = proxies.iterator(); it.hasNext(); ) { - for ( java.util.Iterator it = proxies.iterator(); it.hasNext(); ) + Proxy proxy = (Proxy) it.next(); + if ( proxy.isActive() ) { - Proxy proxy = (Proxy) it.next(); - if ( proxy.isActive() ) - { - activeProxy = proxy; - break; - } + activeProxy = proxy; + break; } } - else - { - // If we only have one proxy, use it as the active one. - activeProxy = (Proxy) proxies.get( 0 ); - } } } Index: src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java =================================================================== --- src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (revision 737823) +++ src/main/java/org/apache/maven/settings/DefaultMavenSettingsBuilder.java (working copy) @@ -89,7 +89,7 @@ { Settings settings = null; - if ( settingsFile.exists() && settingsFile.isFile() ) + if ( settingsFile != null && settingsFile.exists() && settingsFile.isFile() ) { Reader reader = null; try