This is an automated email from the ASF dual-hosted git repository. jaikiran pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ant.git
The following commit(s) were added to refs/heads/master by this push: new 9b0842f Fix space issue in AntStructure.DTDPrinter 9b0842f is described below commit 9b0842fafa3bf3afe11438b6349ed55173cf4327 Author: Tony Gravagno <xh8r2nb...@snkmail.com> AuthorDate: Sun Jan 12 19:16:19 2020 -0800 Fix space issue in AntStructure.DTDPrinter Task AntStructure renders a project DTD. In AntStructure class DTDPrinter, line 327, a single statement is used to concatenate a list of enumerated values which are valid for an attribute. The list is enclosed in parentheses. At line 348 the string "#IMPLIED" is appended to all attribute definitions regardless of type. For other types like Boolean and CDATA, a space is appended. Not for these enumerations. This results in a DTD validation error. Ref [XERCES definition](https://xerces. [...] The full message displayed in VSCode may be different from elsewhere: White space is required before the attribute default in the declaration of attribute "x" for element "y". xml(MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF) This simple one-line change appends the space character required to avoid that error. **Note:** This should not be modified into a change on the `joinAlts` Collector which surrounds values in parentheses. That Collector is used elsewhere where regex syntax is applied immediately after. See line 298. That asterisk cannot be separated from the values with a space. The space must only be applied to line 327. --- CONTRIBUTORS | 1 + WHATSNEW | 3 +++ contributors.xml | 4 ++++ src/main/org/apache/tools/ant/taskdefs/AntStructure.java | 4 ++-- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a831e8f..4b21cf7 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -433,6 +433,7 @@ Tom Eugelink Tom May Tomasz Bech Tomáš Zezula +Tony Gravagno Trejkaz Xaoza Ulrich Schmidt Uwe Schindler diff --git a/WHATSNEW b/WHATSNEW index 23b8e49..2cb3c21 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -34,6 +34,9 @@ Fixed bugs: then the forked mode launch would fail. Bugzilla Report 63958 + * Fixes an issue in AntStructure where an incorrect DTD was being generated. + Github Pull Request #116 + Other changes: -------------- diff --git a/contributors.xml b/contributors.xml index 4e88f27..8de1b86 100644 --- a/contributors.xml +++ b/contributors.xml @@ -1784,6 +1784,10 @@ <last>Zezula</last> </name> <name> + <first>Tony</first> + <last>Gravagno</last> + </name> + <name> <first>Trejkaz</first> <last>Xaoza</last> </name> diff --git a/src/main/org/apache/tools/ant/taskdefs/AntStructure.java b/src/main/org/apache/tools/ant/taskdefs/AntStructure.java index 9a72679..4d8909b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/AntStructure.java +++ b/src/main/org/apache/tools/ant/taskdefs/AntStructure.java @@ -324,7 +324,7 @@ public class AntStructure extends Task { || !areNmtokens(values)) { sb.append("CDATA "); } else { - sb.append(Stream.of(values).collect(joinAlts)); + sb.append(Stream.of(values).collect(joinAlts)).append(" "); } } catch (final InstantiationException | IllegalAccessException ie) { sb.append("CDATA "); @@ -337,7 +337,7 @@ public class AntStructure extends Task { sb.append("CDATA "); } else { sb.append(Stream.of(values).map(Enum::name) - .collect(joinAlts)); + .collect(joinAlts)).append(" "); } } catch (final Exception x) { sb.append("CDATA ");