Henrik Rueping created MNG-8174: ----------------------------------- Summary: DefaultModelBuilder throws a NPE on self-referencing property Key: MNG-8174 URL: https://issues.apache.org/jira/browse/MNG-8174 Project: Maven Issue Type: Bug Affects Versions: 3.9.8, 3.9.5 Reporter: Henrik Rueping
The method org.apache.maven.model.building.DefaultModelBuilder.build(...) throws a Null-Pointer Exception when trying to resolve a pom with a self-referencing property, e.g. {code:xml} <properties> <prop>${prop}</prop> </properties> {code} A (rather) minimal example can be found at [https://github.com/HenrikRueping/pom-property-resolution-test] The stacktrace is {code:java} java.lang.NullPointerException: Attribute value can not be null at org.codehaus.plexus.util.xml.Xpp3Dom.setAttribute(Xpp3Dom.java:208) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:725) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:730) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:730) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:730) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:730) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:693) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:674) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:524) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:571) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator$ModelVisitor.visit(StringVisitorModelInterpolator.java:232) at org.apache.maven.model.interpolation.StringVisitorModelInterpolator.interpolateModel(StringVisitorModelInterpolator.java:101) at org.apache.maven.model.building.DefaultModelBuilder.interpolateModel(DefaultModelBuilder.java:770) at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:385) at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:247) {code} It seems like the cause is that Xpp3Dom.setAttribute does not accept null values, but the interpolate Method in org.apache.maven.model.interpolation.StringVisitorModelInterpolator returns null on a self-referencing property. My Expectation would be that in such a case either a ModelBuildingException is thrown, or it behaves like in the usual case of an undefined property, e.g. the string "${prop}" is in the parsed model. Maybe it is a good idea to add for each test case with an undefined property an analogous test case with a self-referencing property. In Eclipse this Exception is still thrown when editing a pom with a self-referencing property. I would say this is a minor issue, currently I can simply catch the NullPointerException hoping that there are no other causes for a NullPointerException. -- This message was sent by Atlassian Jira (v8.20.10#820010)