We're updating the issue view to help you get more done. 

cargo-maven2-plugin - blank property value in container systemProperties causes NullPointerException

Description

Consider the following POM fragment:

<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.4</version>
<configuration>
<container>
<containerId>jetty7x</containerId>
<type>embedded</type>
...
<systemProperties>
<some.systemProperty>${maven.some.systemProperty}</some.systemProperty>
</systemProperties>
</container>
</configuration>
...
</plugin>

When included in a build, an exception is thrown if ${maven.some.systemProperty} is blank:

Caused by: java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at java.util.Properties.setProperty(Properties.java:143)
at java.lang.System.setProperty(System.java:729)
at org.codehaus.cargo.maven2.configuration.Container.setupEmbeddedSystemProperties(Container.java:290)
at org.codehaus.cargo.maven2.configuration.Container.createContainer(Container.java:231)
at org.codehaus.cargo.maven2.AbstractCargoMojo.createNewContainer(AbstractCargoMojo.java:470)
at org.codehaus.cargo.maven2.AbstractCargoMojo.createContainer(AbstractCargoMojo.java:410)
at org.codehaus.cargo.maven2.ContainerStartMojo.doExecute(ContainerStartMojo.java:53)
at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:268)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)

Of course, one could argue why include the system property in the POM if it's blank. I am wanting to use such functionality as a means of including a runtime "override" to a default value in the WAR being deployed - code in my WAR reads in the system property and uses it as an override only if it is not null; otherwise the default value defined in the WAR is used instead.

Looking at the stack trace a simple check for null in org.codehaus.cargo.maven2.configuration.Container.setupEmbeddedSystemProperties should solve the problem - if the value is null just don't define the system property.

I'll take a look at pulling a patch together later when I get a spare moment.

Status

Assignee

Savas Ali Tokmen

Reporter

Alistair Dutton

Components

Fix versions

Affects versions

1.0.4

Priority

Minor