[ 
https://jira.codehaus.org/browse/MNG-5649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=348068#comment-348068
 ] 

Michael Osipov edited comment on MNG-5649 at 6/15/14 1:36 PM:
--------------------------------------------------------------

{noformat}
$ grep -nrF "throw new IllegalArgumentException" .
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:168:
        throw new IllegalArgumentException( "remote repository manager has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:178:
        throw new IllegalArgumentException( "version resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:189:
        throw new IllegalArgumentException( "version range resolver has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:199:
        throw new IllegalArgumentException( "artifact resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:209:
        throw new IllegalArgumentException( "repository event dispatcher has 
not been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:219:
        throw new IllegalArgumentException( "model builder has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:130:
    throw new IllegalArgumentException( "metadata resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:140:
    throw new IllegalArgumentException( "sync context factory has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:150:
    throw new IllegalArgumentException( "repository event dispatcher has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:142:
            t
hrow new IllegalArgumentException( "metadata resolver has not been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:152:
            t
hrow new IllegalArgumentException( "sync context factory has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:162:
            t
hrow new IllegalArgumentException( "repository event dispatcher has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java:47:
            throw n
ew IllegalArgumentException( "no artifact specified" );
./maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java:55: 
           throw new IllegalArgumentExce
ption( "version: null" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java:93:
            throw n
ew IllegalArgumentException( "local repository delegate missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:50:
            th
row new IllegalArgumentException( "input file missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:63:
            th
row new IllegalArgumentException( "input reader missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:86:
            th
row new IllegalArgumentException( "input stream missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:312:
            throw new IllegalAr
gumentException( "model missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:329:
            throw new IllegalAr
gumentException( "extension plugin missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:345:
            throw new IllegalAr
gumentException( "plugin missing" );
./maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java:125:
            throw new
 IllegalArgumentException( "group id for plugin has not been specified" );
./maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java:129:
            throw new
 IllegalArgumentException( "artifact id for plugin has not been specified" );
./maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java:58:
            throw new
 IllegalArgumentException( "bean configuration request not specified" );
./maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java:63:
            throw new
 IllegalArgumentException( "bean to be configured not specified" );
./maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java:65:
            throw new IllegalArgumentE
xception( "project missing" );
./maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java:90:
            throw new IllegalArgumentE
xception( "project missing" );
./maven-core/src/main/java/org/apache/maven/execution/BuildSummary.java:52:     
       throw new IllegalArgumentExceptio
n( "project missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:706:
            throw new Illega
lArgumentException( "proxy missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:749:
            throw new Illega
lArgumentException( "server missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:792:
            throw new Illega
lArgumentException( "mirror missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:1008:
            throw new Illeg
alArgumentException( "profile missing" );
./maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java:103:  
          throw new IllegalArgumentExcep
tion( "Invalid failure behavior (must be one of: \'" + FAIL_FAST + "\', \'"
./maven-core/src/main/java/org/apache/maven/FilteredProjectDependencyGraph.java:57:
            throw new IllegalArgument
Exception( "project dependency graph missing" );
./maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java:173:
            throw new Ille
galArgumentException(
./maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java:167:
            throw new IllegalArgumen
tException();
./maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java:344:
            throw new Ill
egalArgumentException( "incomplete plugin descriptor, plugin missing" );
./maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java:351:
            throw new Ill
egalArgumentException( "incomplete plugin descriptor, plugin artifact missing" 
);
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:58:
            throw new IllegalAr
gumentException( "project missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:64:
            throw new IllegalAr
gumentException( "project building helper missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:70:
            throw new IllegalAr
gumentException( "project building request missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java:325:
            throw new Illegal
ArgumentException( "repository merge mode not specified" );
./maven-core/src/main/java/org/apache/maven/project/MavenProject.java:253:      
      throw new IllegalArgumentException
( "mavenTools: null" );
./maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java:151:
                throw new IllegalA
rgumentException( "Illegal request type: " + requestType );
./maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java:184:
                throw new IllegalA
rgumentException( "Illegal event type: " + eventType );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:109:
            throw new Ill
egalArgumentException( "Version range must not be null" );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:113:
            throw new Ill
egalArgumentException( "Version range must not be empty" );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:123:
            throw new Ill
egalArgumentException( e.getMessage(), e );
./maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java:66:
            throw new Ille
galArgumentException( e );
./maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java:70:
            throw new Ille
galArgumentException( e );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:48:
            throw new IllegalArgument
Exception( "mavenProject: null" );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:59:
            throw new IllegalArgument
Exception( "mavenProject: null" );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:86:
            throw new IllegalArgument
Exception( "uri: null or empty" );
./maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java:63:
            throw new IllegalArgu
mentException( "logger missing" );
./maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java:106:  
          throw new IllegalArgumentExcep
tion( "target missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:466:
                throw n
ew IllegalArgumentException( "neither model source nor input file are 
specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:895:
            throw new I
llegalArgumentException( "no model resolver provided, cannot resolve parent POM 
"
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:1068:
                    th
row new IllegalArgumentException( "no model resolver provided, cannot resolve 
import POM "
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:81:
            throw
 new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:103:
            thro
w new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:120:
            thro
w new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java:47:
            throw new Illega
lArgumentException( "no POM file specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/UrlModelSource.java:46:
            throw new Illegal
ArgumentException( "no POM URL specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:53:
            throw new IllegalAr
gumentException( "input file missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:68:
            throw new IllegalAr
gumentException( "input reader missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:86:
            throw new IllegalAr
gumentException( "input stream missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:50:
            throw new IllegalAr
gumentException( "output file missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:55:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:68:
            throw new IllegalAr
gumentException( "output writer missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:73:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:92:
            throw new IllegalAr
gumentException( "output stream missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:97:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java:50:
       throw new IllegalArgumentException( "class of profile activator to test 
is not specified" );
./maven-settings/src/main/mdo/settings.mdo:73:            throw new 
IllegalArgumentException( "sourceLevel must be one o
f: {" + USER_LEVEL + "," + GLOBAL_LEVEL + "}" );
./maven-settings/target/generated-sources/modello/org/apache/maven/settings/TrackableBase.java:62:
            throw new
IllegalArgumentException( "sourceLevel must be one of: {" + USER_LEVEL + "," + 
GLOBAL_LEVEL + "}" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/building/FileSettingsSource.java:47:
            throw n
ew IllegalArgumentException( "no settings file specified" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/building/UrlSettingsSource.java:46:
            throw ne
w IllegalArgumentException( "no settings URL specified" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:50:
            throw new
IllegalArgumentException( "input file missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:63:
            throw new
IllegalArgumentException( "input reader missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:86:
            throw new
IllegalArgumentException( "input stream missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:50:
            throw new
IllegalArgumentException( "output file missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:55:
            throw new
IllegalArgumentException( "settings missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:68:
            throw new
IllegalArgumentException( "output writer missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:73:
            throw new
IllegalArgumentException( "settings missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:92:
            throw new
IllegalArgumentException( "output stream missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:97:
            throw new
IllegalArgumentException( "settings missing" );
{noformat}

Almost in every case listed above. Guava's {{Preconditions}} would solve the 
issue. I use Commons Lang's {{Validate}} in my projects.  When we switch to 
Java 7, we could simply use 
[this|http://docs.oracle.com/javase/7/docs/api/java/util/Objects.html#requireNonNull(T)].


was (Author: michael-o):
{noformat}
$ grep -nrF "throw new IllegalArgumentException" .
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:168:
        throw new IllegalArgumentException( "remote repository manager has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:178:
        throw new IllegalArgumentException( "version resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:189:
        throw new IllegalArgumentException( "version range resolver has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:199:
        throw new IllegalArgumentException( "artifact resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:209:
        throw new IllegalArgumentException( "repository event dispatcher has 
not been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java:219:
        throw new IllegalArgumentException( "model builder has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:130:
    throw new IllegalArgumentException( "metadata resolver has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:140:
    throw new IllegalArgumentException( "sync context factory has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java:150:
    throw new IllegalArgumentException( "repository event dispatcher has not 
been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:142:
            t
hrow new IllegalArgumentException( "metadata resolver has not been specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:152:
            t
hrow new IllegalArgumentException( "sync context factory has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java:162:
            t
hrow new IllegalArgumentException( "repository event dispatcher has not been 
specified" );
./maven-aether-provider/src/main/java/org/apache/maven/repository/internal/RelocatedArtifact.java:47:
            throw n
ew IllegalArgumentException( "no artifact specified" );
./maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java:55: 
           throw new IllegalArgumentExce
ption( "version: null" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/LegacyLocalRepositoryManager.java:93:
            throw n
ew IllegalArgumentException( "local repository delegate missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:50:
            th
row new IllegalArgumentException( "input file missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:63:
            th
row new IllegalArgumentException( "input reader missing" );
./maven-core/src/main/java/org/apache/maven/artifact/repository/metadata/io/DefaultMetadataReader.java:86:
            th
row new IllegalArgumentException( "input stream missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:312:
            throw new IllegalAr
gumentException( "model missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:329:
            throw new IllegalAr
gumentException( "extension plugin missing" );
./maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java:345:
            throw new IllegalAr
gumentException( "plugin missing" );
./maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java:125:
            throw new
 IllegalArgumentException( "group id for plugin has not been specified" );
./maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java:129:
            throw new
 IllegalArgumentException( "artifact id for plugin has not been specified" );
./maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java:58:
            throw new
 IllegalArgumentException( "bean configuration request not specified" );
./maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java:63:
            throw new
 IllegalArgumentException( "bean to be configured not specified" );
./maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java:65:
            throw new IllegalArgumentE
xception( "project missing" );
./maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java:90:
            throw new IllegalArgumentE
xception( "project missing" );
./maven-core/src/main/java/org/apache/maven/execution/BuildSummary.java:52:     
       throw new IllegalArgumentExceptio
n( "project missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:706:
            throw new Illega
lArgumentException( "proxy missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:749:
            throw new Illega
lArgumentException( "server missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:792:
            throw new Illega
lArgumentException( "mirror missing" );
./maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java:1008:
            throw new Illeg
alArgumentException( "profile missing" );
./maven-core/src/main/java/org/apache/maven/execution/ReactorManager.java:103:  
          throw new IllegalArgumentExcep
tion( "Invalid failure behavior (must be one of: \'" + FAIL_FAST + "\', \'"
./maven-core/src/main/java/org/apache/maven/FilteredProjectDependencyGraph.java:57:
            throw new IllegalArgument
Exception( "project dependency graph missing" );
./maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java:173:
            throw new Ille
galArgumentException(
./maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java:167:
            throw new IllegalArgumen
tException();
./maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java:344:
            throw new Ill
egalArgumentException( "incomplete plugin descriptor, plugin missing" );
./maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java:351:
            throw new Ill
egalArgumentException( "incomplete plugin descriptor, plugin artifact missing" 
);
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:58:
            throw new IllegalAr
gumentException( "project missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:64:
            throw new IllegalAr
gumentException( "project building helper missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultModelBuildingListener.java:70:
            throw new IllegalAr
gumentException( "project building request missing" );
./maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java:325:
            throw new Illegal
ArgumentException( "repository merge mode not specified" );
./maven-core/src/main/java/org/apache/maven/project/MavenProject.java:253:      
      throw new IllegalArgumentException
( "mavenTools: null" );
./maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java:151:
                throw new IllegalA
rgumentException( "Illegal request type: " + requestType );
./maven-core/src/main/java/org/apache/maven/repository/ArtifactTransferEvent.java:184:
                throw new IllegalA
rgumentException( "Illegal event type: " + eventType );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:109:
            throw new Ill
egalArgumentException( "Version range must not be null" );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:113:
            throw new Ill
egalArgumentException( "Version range must not be empty" );
./maven-core/src/main/java/org/apache/maven/rtinfo/internal/DefaultRuntimeInformation.java:123:
            throw new Ill
egalArgumentException( e.getMessage(), e );
./maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java:66:
            throw new Ille
galArgumentException( e );
./maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java:70:
            throw new Ille
galArgumentException( e );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:48:
            throw new IllegalArgument
Exception( "mavenProject: null" );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:59:
            throw new IllegalArgument
Exception( "mavenProject: null" );
./maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java:86:
            throw new IllegalArgument
Exception( "uri: null or empty" );
./maven-embedder/src/main/java/org/apache/maven/cli/event/ExecutionEventLogger.java:63:
            throw new IllegalArgu
mentException( "logger missing" );
./maven-model/src/main/java/org/apache/maven/model/merge/ModelMerger.java:106:  
          throw new IllegalArgumentExcep
tion( "target missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:466:
                throw n
ew IllegalArgumentException( "neither model source nor input file are 
specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:895:
            throw new I
llegalArgumentException( "no model resolver provided, cannot resolve parent POM 
"
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java:1068:
                    th
row new IllegalArgumentException( "no model resolver provided, cannot resolve 
import POM "
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:81:
            throw
 new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:103:
            thro
w new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingResult.java:120:
            thro
w new IllegalArgumentException( "no model identifier specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/FileModelSource.java:47:
            throw new Illega
lArgumentException( "no POM file specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/building/UrlModelSource.java:46:
            throw new Illegal
ArgumentException( "no POM URL specified" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:53:
            throw new IllegalAr
gumentException( "input file missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:68:
            throw new IllegalAr
gumentException( "input reader missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:86:
            throw new IllegalAr
gumentException( "input stream missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:50:
            throw new IllegalAr
gumentException( "output file missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:55:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:68:
            throw new IllegalAr
gumentException( "output writer missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:73:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:92:
            throw new IllegalAr
gumentException( "output stream missing" );
./maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelWriter.java:97:
            throw new IllegalAr
gumentException( "model missing" );
./maven-model-builder/src/test/java/org/apache/maven/model/profile/activation/AbstractProfileActivatorTest.java:50:
       throw new IllegalArgumentException( "class of profile activator to test 
is not specified" );
./maven-settings/src/main/mdo/settings.mdo:73:            throw new 
IllegalArgumentException( "sourceLevel must be one o
f: {" + USER_LEVEL + "," + GLOBAL_LEVEL + "}" );
./maven-settings/target/generated-sources/modello/org/apache/maven/settings/TrackableBase.java:62:
            throw new
IllegalArgumentException( "sourceLevel must be one of: {" + USER_LEVEL + "," + 
GLOBAL_LEVEL + "}" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/building/FileSettingsSource.java:47:
            throw n
ew IllegalArgumentException( "no settings file specified" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/building/UrlSettingsSource.java:46:
            throw ne
w IllegalArgumentException( "no settings URL specified" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:50:
            throw new
IllegalArgumentException( "input file missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:63:
            throw new
IllegalArgumentException( "input reader missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsReader.java:86:
            throw new
IllegalArgumentException( "input stream missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:50:
            throw new
IllegalArgumentException( "output file missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:55:
            throw new
IllegalArgumentException( "settings missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:68:
            throw new
IllegalArgumentException( "output writer missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:73:
            throw new
IllegalArgumentException( "settings missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:92:
            throw new
IllegalArgumentException( "output stream missing" );
./maven-settings-builder/src/main/java/org/apache/maven/settings/io/DefaultSettingsWriter.java:97:
            throw new
IllegalArgumentException( "settings missing" );
{noformat}

Almost in every case listed above. Guava's {{Preconditions}} would solve the 
issue. I use Commons Lang's {{Validate}}.  When we switch to Java 7, we could 
simply use 
[this|http://docs.oracle.com/javase/7/docs/api/java/util/Objects.html#requireNonNull(T)].

> Stop abusing IllegalArgumentException in case of null
> -----------------------------------------------------
>
>                 Key: MNG-5649
>                 URL: https://jira.codehaus.org/browse/MNG-5649
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 3.2.1
>            Reporter: Michael Osipov
>
> In several spots of Maven Core, IAE is thrown where an argument is null. This 
> should be turned into {{NullPointerException}} since JDK adheres to is and 
> the 
> [description|http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html]
>  of this exception indicates that and Effective Java does that too.
> I possible fix version could next minor: 3.3. Is no one is opposed it could 
> even be 3.2.2.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to