Short story: the MavenBuilder is passing a system property with an empty key.
Are you 100% sure that your config is expanded properly ? Is your system environment identical on both systems ?
if we assume the code is similar in your example, the code tries to do something like:
System.getProperty( "" );
In my version of the JDK, I can't set an empty system property but I can pass an empty key to the system properties :)
class Test {
public static void main(String[] args) {
try {
System.setProperty("", "ho");
throw new RuntimeException("Expected failure");
} catch(IllegalArgumentException e) {
System.out.println("We can' set the empty key:" + e.getMessage());
}
try {
System.getProperties().put("", "ho");
throw new RuntimeException("Expected failure");
} catch(IllegalArgumentException e) {
System.out.println("We can' set the empty key:" + e.getMessage());
}
}
}
prints
We can' set the empty key:key can't be empty
Exception in thread "main" java.lang.RuntimeException: Expected failure
at Test.main(Test.java:14)
This is exactly what the MavenBuilder fails to verify
// working around NPE when someone puts a null value into systemProps.
for (Map.Entry<String,String> e : systemProps.entrySet()) {
if (e.getValue()==null)
throw new IllegalArgumentException("System property "+e.getKey()+" has a null value");
System.getProperties().put(e.getKey(), e.getValue());
}
Note: I will send a patch that will detect the problem earlier. It won't fix your problem. Check your environment.