From b6628790372952c4ec5c2358c1b3b788194f6e6d Mon Sep 17 00:00:00 2001 From: Keegan Witt Date: Sat, 13 Nov 2021 14:51:16 -0500 Subject: [PATCH] Check that user property exists before adding to properties (fixes #203) --- pom.xml | 2 +- .../gmavenplus/mojo/AbstractToolsMojo.java | 4 +++- .../gmavenplus/mojo/AbstractToolsMojoTest.java | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ec5f2819c..274f21f81 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.codehaus.gmavenplus gmavenplus-plugin maven-plugin - 1.14.0-SNAPSHOT + 1.13.1-SNAPSHOT UTF-8 diff --git a/src/main/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojo.java b/src/main/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojo.java index 3895fc3cc..8eaa0cfb5 100644 --- a/src/main/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojo.java +++ b/src/main/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojo.java @@ -185,7 +185,9 @@ protected void initializeProperties() { properties.putAll(session.getUserProperties()); } else if (bindAllProjectProperties && bindSessionUserOverrideProperties && project != null) { for (Object key : project.getProperties().keySet()) { - properties.put(key, session.getUserProperties().get(key)); + if (session.getUserProperties().get(key) != null) { + properties.put(key, session.getUserProperties().get(key)); + } } } } diff --git a/src/test/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojoTest.java b/src/test/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojoTest.java index dc0e3d412..1b00b3eec 100644 --- a/src/test/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojoTest.java +++ b/src/test/java/org/codehaus/gmavenplus/mojo/AbstractToolsMojoTest.java @@ -142,6 +142,20 @@ public void testAddAllSessionUserProperties() { assertEquals("bar", testMojo.properties.get("foo")); } + @Test + public void testBindAllProjectPropertiesAndBindSessionUserOverridePropertiesWhenEmpty() { + MavenSession session = mock(MavenSession.class); + Properties projectProperties = new Properties(); + projectProperties.put("foo", "bar"); + doReturn(new Properties()).when(session).getUserProperties(); + doReturn(projectProperties).when(project).getProperties(); + testMojo.session = session; + testMojo.bindAllProjectProperties = true; + testMojo.bindSessionUserOverrideProperties = true; + + testMojo.initializeProperties(); + } + @Test public void testSessionPropertiesOverrideProjectPropertiesAndIncludesOthers() { Properties projectProperties = new Properties();