Author: rfscholte
Date: Fri Aug  4 13:31:21 2017
New Revision: 1804119

URL: http://svn.apache.org/viewvc?rev=1804119&view=rev
Log:
Ensure there are module references, to prevent NoSuchElementException

Modified:
    
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java

Modified: 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java?rev=1804119&r1=1804118&r2=1804119&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java
 (original)
+++ 
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java
 Fri Aug  4 13:31:21 2017
@@ -269,18 +269,22 @@ public class DependencyStatusSets
             @SuppressWarnings( "unchecked" )
             Set<Object> moduleReferences = (Set<Object>) findAllMethod.invoke( 
moduleFinderInstance );
             
-            Object moduleReference = moduleReferences.iterator().next();
-            Method descriptorMethod = moduleReference.getClass().getMethod( 
"descriptor" );
-            Object moduleDescriptorInstance = descriptorMethod.invoke( 
moduleReference );
-            
-            Method nameMethod = moduleDescriptorInstance.getClass().getMethod( 
"name" );
-            String name = (String) nameMethod.invoke( moduleDescriptorInstance 
);
-            
-            moduleDescriptor = new ModuleDescriptor();
-            moduleDescriptor.name = name;
-            
-            Method isAutomaticMethod = 
moduleDescriptorInstance.getClass().getMethod( "isAutomatic" );
-            moduleDescriptor.automatic = (Boolean) isAutomaticMethod.invoke( 
moduleDescriptorInstance );
+            // moduleReferences can be empty when referring to target/classes 
without module-info.class
+            if ( !moduleReferences.isEmpty() )
+            {
+                Object moduleReference = moduleReferences.iterator().next();
+                Method descriptorMethod = 
moduleReference.getClass().getMethod( "descriptor" );
+                Object moduleDescriptorInstance = descriptorMethod.invoke( 
moduleReference );
+                
+                Method nameMethod = 
moduleDescriptorInstance.getClass().getMethod( "name" );
+                String name = (String) nameMethod.invoke( 
moduleDescriptorInstance );
+                
+                moduleDescriptor = new ModuleDescriptor();
+                moduleDescriptor.name = name;
+                
+                Method isAutomaticMethod = 
moduleDescriptorInstance.getClass().getMethod( "isAutomatic" );
+                moduleDescriptor.automatic = (Boolean) 
isAutomaticMethod.invoke( moduleDescriptorInstance );
+            }
         }
         catch ( ClassNotFoundException e )
         {


Reply via email to