You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/04/25 20:51:03 UTC

[maven] branch MNG-6819 updated: [MNG-6819] Unit test for StringVisitorModelInterpolator NPE recursive expression cycle

This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MNG-6819
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/MNG-6819 by this push:
     new 9c46b06  [MNG-6819] Unit test for StringVisitorModelInterpolator NPE recursive expression cycle
9c46b06 is described below

commit 9c46b06bfc080ad51d2d5626114f47293693d05c
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Apr 25 22:50:42 2020 +0200

    [MNG-6819] Unit test for StringVisitorModelInterpolator NPE recursive expression cycle
---
 .../StringVisitorModelInterpolatorTest.java        | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolatorTest.java b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolatorTest.java
new file mode 100644
index 0000000..3ad797b
--- /dev/null
+++ b/maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringVisitorModelInterpolatorTest.java
@@ -0,0 +1,33 @@
+package org.apache.maven.model.interpolation;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.building.DefaultModelBuildingRequest;
+import org.apache.maven.model.building.SimpleProblemCollector;
+import org.junit.Test;
+
+import java.util.Properties;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class StringVisitorModelInterpolatorTest
+{
+    @Test
+    public void testNPE()
+    {
+        Properties props = new Properties();
+        props.setProperty( "aa", "${bb}" );
+        props.setProperty( "bb", "${aa}" );
+        DefaultModelBuildingRequest request = new DefaultModelBuildingRequest();
+
+        Model model = new Model();
+        model.setProperties( props );
+
+        SimpleProblemCollector collector = new SimpleProblemCollector();
+        StringVisitorModelInterpolator interpolator = new StringVisitorModelInterpolator();
+        interpolator.interpolateModel( model, null, request, collector );
+
+        assertEquals( "Expected no errors", 2, collector.getErrors().size() );
+        assertTrue( collector.getErrors().get( 0 ).contains( "Detected the following recursive expression cycle" ) );
+    }
+}
\ No newline at end of file