You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2015/09/12 00:45:15 UTC

[2/2] maven git commit: MNG-5805: Fix NPE in LifecyclePhase#toString()

MNG-5805: Fix NPE in LifecyclePhase#toString()

Signed-off-by: Jason van Zyl <ja...@tesla.io>

closes #62


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/9f7971da
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/9f7971da
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/9f7971da

Branch: refs/heads/master
Commit: 9f7971dadbec8882b4c119345494b620d3a1f897
Parents: 31e70db
Author: Anton Tanasenko <at...@gmail.com>
Authored: Sat Aug 1 17:02:52 2015 +0300
Committer: Jason van Zyl <ja...@tesla.io>
Committed: Fri Sep 11 18:36:02 2015 -0400

----------------------------------------------------------------------
 .../maven/lifecycle/mapping/LifecyclePhase.java | 35 ++++++----
 .../lifecycle/mapping/LifecyclePhaseTest.java   | 73 ++++++++++++++++++++
 2 files changed, 94 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/9f7971da/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java
index d9afcf5..059f234 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java
@@ -55,13 +55,16 @@ public class LifecyclePhase
     {
         mojos = new ArrayList<>();
         
-        String[] mojoGoals = StringUtils.split( goals, "," );
-        
-        for ( String mojoGoal: mojoGoals )
+        if ( StringUtils.isNotEmpty( goals ) )
         {
-            LifecycleMojo lifecycleMojo = new LifecycleMojo();
-            lifecycleMojo.setGoal( mojoGoal.trim() );
-            mojos.add( lifecycleMojo );
+            String[] mojoGoals = StringUtils.split( goals, "," );
+            
+            for ( String mojoGoal: mojoGoals )
+            {
+                LifecycleMojo lifecycleMojo = new LifecycleMojo();
+                lifecycleMojo.setGoal( mojoGoal.trim() );
+                mojos.add( lifecycleMojo );
+            }
         }
     }
     
@@ -70,17 +73,21 @@ public class LifecyclePhase
     {
         StringBuilder sb = new StringBuilder();
         boolean first = true;
-        for ( LifecycleMojo mojo: getMojos() )
+        List<LifecycleMojo> mojos = getMojos();
+        if ( mojos != null )
         {
-            if ( first )
-            {
-                first = false;
-            }
-            else
+            for ( LifecycleMojo mojo: mojos )
             {
-                sb.append( "," );
+                if ( first )
+                {
+                    first = false;
+                }
+                else
+                {
+                    sb.append( "," );
+                }
+                sb.append( mojo.getGoal() );
             }
-            sb.append( mojo.getGoal() );
         }
         return sb.toString();
     }

http://git-wip-us.apache.org/repos/asf/maven/blob/9f7971da/maven-core/src/test/java/org/apache/maven/lifecycle/mapping/LifecyclePhaseTest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/test/java/org/apache/maven/lifecycle/mapping/LifecyclePhaseTest.java b/maven-core/src/test/java/org/apache/maven/lifecycle/mapping/LifecyclePhaseTest.java
new file mode 100644
index 0000000..0d8cbdc
--- /dev/null
+++ b/maven-core/src/test/java/org/apache/maven/lifecycle/mapping/LifecyclePhaseTest.java
@@ -0,0 +1,73 @@
+package org.apache.maven.lifecycle.mapping;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Test;
+
+/**
+ * @author atanasenko
+ */
+public class LifecyclePhaseTest
+{
+    @Test
+    public void testToString()
+    {
+        LifecyclePhase phase = new LifecyclePhase();
+        assertEquals( "", phase.toString() );
+        
+        LifecycleMojo mojo1 = new LifecycleMojo();
+        mojo1.setGoal( "jar:jar" );
+        phase.setMojos( Arrays.asList( mojo1 ) );
+        assertEquals( "jar:jar", phase.toString()  );
+        
+        LifecycleMojo mojo2 = new LifecycleMojo();
+        mojo2.setGoal( "war:war" );
+        phase.setMojos( Arrays.asList( mojo1, mojo2 ) );
+        assertEquals( "jar:jar,war:war", phase.toString() );
+    }
+    
+    @Test
+    public void testSet()
+    {
+        LifecyclePhase phase = new LifecyclePhase();
+        assertNull( phase.getMojos() );
+        
+        phase.set( "" );
+        assertNotNull( phase.getMojos() );
+        assertEquals( 0, phase.getMojos().size() );
+        
+        phase.set( "jar:jar, war:war" );
+        
+        List<LifecycleMojo> mojos = phase.getMojos();
+        assertNotNull( mojos );
+        assertEquals( 2, mojos.size() );
+        
+        LifecycleMojo mojo1 = mojos.get(0);
+        assertNotNull( mojo1 );
+        assertEquals( "jar:jar", mojo1.getGoal() );
+        
+        LifecycleMojo mojo2 = mojos.get(1);
+        assertNotNull( mojo2 );
+        assertEquals( "war:war", mojo2.getGoal() );
+    }
+}
+