From 1934c451acc3162aa5d6795f31860ad7a23c4652 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Wed, 1 Jul 2026 08:04:14 -0400 Subject: [PATCH 1/3] Add failing test: PrettyPrintXMLWriter with null lineIndent --- .../maven/shared/utils/xml/PrettyPrintXmlWriterTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java index ee210cb0..274891c3 100644 --- a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java +++ b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java @@ -93,6 +93,13 @@ public void testPrettyPrintXMLWriterWithGivenLineIndenter() throws IOException { assertEquals(expectedResult(" "), w.toString()); } + @Test + public void testPrettyPrintXMLWriterWithNullLineIndent() throws IOException { + PrettyPrintXMLWriter writer = new PrettyPrintXMLWriter(new StringWriter(), (String) null); + writer.startElement("div"); + writer.endElement(); + } + @Test public void testEscapeXmlAttributeWindows() throws IOException { // Windows From 0f86410abcf6a4ed3918839e999c644aebb9b258 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Wed, 1 Jul 2026 08:04:39 -0400 Subject: [PATCH 2/3] PrettyPrintXMLWriter: handle null lineIndent/lineSeparator in constructors --- .../shared/utils/xml/PrettyPrintXMLWriter.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java index f611d2f9..523a106a 100644 --- a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java +++ b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java @@ -95,7 +95,12 @@ public PrettyPrintXMLWriter(Writer writer) { * @param doctype can be null */ public PrettyPrintXMLWriter(PrintWriter writer, String lineIndent, String encoding, String doctype) { - this(writer, lineIndent.toCharArray(), "\n".toCharArray(), encoding, doctype); + this( + writer, + lineIndent != null ? lineIndent.toCharArray() : DEFAULT_LINE_INDENT, + "\n".toCharArray(), + encoding, + doctype); } /** @@ -135,7 +140,12 @@ public PrettyPrintXMLWriter(Writer writer, String encoding, String doctype) { */ public PrettyPrintXMLWriter( PrintWriter writer, String lineIndent, String lineSeparator, String encoding, String doctype) { - this(writer, lineIndent.toCharArray(), lineSeparator.toCharArray(), encoding, doctype); + this( + writer, + lineIndent != null ? lineIndent.toCharArray() : DEFAULT_LINE_INDENT, + lineSeparator != null ? lineSeparator.toCharArray() : "\n".toCharArray(), + encoding, + doctype); } /** From 25ecd24ad1381fa262a4a5350805809d40b95e9b Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Wed, 1 Jul 2026 14:54:49 +0000 Subject: [PATCH 3/3] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .../shared/utils/xml/PrettyPrintXmlWriterTest.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java index 274891c3..5ee265f5 100644 --- a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java +++ b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java @@ -95,9 +95,15 @@ public void testPrettyPrintXMLWriterWithGivenLineIndenter() throws IOException { @Test public void testPrettyPrintXMLWriterWithNullLineIndent() throws IOException { - PrettyPrintXMLWriter writer = new PrettyPrintXMLWriter(new StringWriter(), (String) null); - writer.startElement("div"); - writer.endElement(); + StringWriter sw = new StringWriter(); + PrettyPrintXMLWriter writer = new PrettyPrintXMLWriter(sw, (String) null); + + writer.startElement(HTML.Tag.HTML.toString()); + writeXhtmlHead(writer); + writeXhtmlBody(writer); + writer.endElement(); // Tag.HTML + + assertEquals(expectedResult(), sw.toString()); } @Test