diff --git a/WHATSNEW b/WHATSNEW index 59d193675..0d621a252 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -67,7 +67,8 @@ Changes that could break older environments: Fixed bugs: ----------- -* Some potential NullPointerExceptions, Bugzilla Report 37765 + +* Some potential NullPointerExceptions, Bugzilla Reports 37765 and 38056 * Problem when adding multiple filter files, Bugzilla Report 37341 diff --git a/src/etc/testcases/taskdefs/presetdef.xml b/src/etc/testcases/taskdefs/presetdef.xml index 64926eef6..32f772167 100644 --- a/src/etc/testcases/taskdefs/presetdef.xml +++ b/src/etc/testcases/taskdefs/presetdef.xml @@ -118,4 +118,13 @@ + + + + + + + + + diff --git a/src/main/org/apache/tools/ant/UnknownElement.java b/src/main/org/apache/tools/ant/UnknownElement.java index e31509d44..d5b680d8c 100644 --- a/src/main/org/apache/tools/ant/UnknownElement.java +++ b/src/main/org/apache/tools/ant/UnknownElement.java @@ -41,7 +41,7 @@ public class UnknownElement extends Task { /** * Holds the namespace of the element. */ - private String namespace; + private String namespace = ""; /** * Holds the namespace qname of the element. @@ -111,7 +111,7 @@ public class UnknownElement extends Task { getProject()); namespace = helper.getCurrentAntlibUri(); } - this.namespace = namespace; + this.namespace = namespace == null ? "" : namespace; } /** Return the qname of the XML element associated with this component. diff --git a/src/testcases/org/apache/tools/ant/taskdefs/PreSetDefTest.java b/src/testcases/org/apache/tools/ant/taskdefs/PreSetDefTest.java index 4d161f24b..ca82f7860 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/PreSetDefTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/PreSetDefTest.java @@ -80,6 +80,10 @@ public class PreSetDefTest extends BuildFileTest { "correct_taskname_badel", "element message", "javac doesn't support the"); } + public void testPresetdefWithNestedElementTwice() { // #38056 + executeTarget("presetdef-with-nested-element-twice"); + executeTarget("presetdef-with-nested-element-twice"); + } /** * A test class to check default properties