This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag OpenBSD in repository testng.
commit 871d87507f9bffea035e2055ac96fbe419df413f Author: Vladislav Rassokhin <[email protected]> Date: Sat Nov 15 08:03:20 2014 +0300 testng-562 testNG not creating HTML report Fix NPE in XMLStringBuffer.java Add corresponding Nullable annotations --- .../java/org/testng/reporters/XMLStringBuffer.java | 45 ++++++++++++++-------- src/main/java/org/testng/reporters/XMLUtils.java | 27 +++++++++---- 2 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/testng/reporters/XMLStringBuffer.java b/src/main/java/org/testng/reporters/XMLStringBuffer.java index 441ac6b..092c10e 100755 --- a/src/main/java/org/testng/reporters/XMLStringBuffer.java +++ b/src/main/java/org/testng/reporters/XMLStringBuffer.java @@ -1,5 +1,7 @@ package org.testng.reporters; +import org.testng.internal.Nullable; + import java.io.Writer; import java.util.Properties; import java.util.Stack; @@ -64,7 +66,7 @@ public class XMLStringBuffer { * @param start A string of spaces indicating the indentation at which * to start the generation. */ - private void init(IBuffer buffer, String start, String version, String encoding) { + private void init(IBuffer buffer, String start, @Nullable String version, @Nullable String encoding) { m_buffer = buffer; m_currentIndent = start; if (version != null) { @@ -80,7 +82,7 @@ public class XMLStringBuffer { */ public void setXmlDetails(String v, String enc) { if (m_buffer.toString().length() != 0) { - throw new RuntimeException("Buffer should be empty: '" + m_buffer.toString() + "'"); + throw new IllegalStateException("Buffer should be empty: '" + m_buffer.toString() + "'"); } m_buffer.append("<?xml version=\"" + v + "\" encoding=\"" + enc + "\"?>").append(EOL); } @@ -102,7 +104,7 @@ public class XMLStringBuffer { * @param schema The schema to use (can be null or an empty string). * @param attributes A Properties file representing the attributes (or null) */ - public void push(String tagName, String schema, Properties attributes) { + public void push(String tagName, @Nullable String schema, @Nullable Properties attributes) { XMLUtils.xmlOpen(m_buffer, m_currentIndent, tagName + schema, attributes); m_tagStack.push(new Tag(m_currentIndent, tagName, attributes)); m_currentIndent += DEFAULT_INDENT_INCREMENT; @@ -115,7 +117,7 @@ public class XMLStringBuffer { * @param tagName The name of the tag. * @param schema The schema to use (can be null or an empty string). */ - public void push(String tagName, String schema) { + public void push(String tagName, @Nullable String schema) { push(tagName, schema, null); } @@ -126,7 +128,7 @@ public class XMLStringBuffer { * @param tagName The name of the tag. * @param attributes A Properties file representing the attributes (or null) */ - public void push(String tagName, Properties attributes) { + public void push(String tagName, @Nullable Properties attributes) { push(tagName, "", attributes); } @@ -136,6 +138,12 @@ public class XMLStringBuffer { private Properties createProperties(String[] attributes) { Properties result = new Properties(); + if (attributes == null) { + return result; + } + if (attributes.length % 2 != 0) { + throw new IllegalArgumentException("Arguments 'attributes' length must be even. Actual: " + attributes.length); + } for (int i = 0; i < attributes.length; i += 2) { result.put(attributes[i], attributes[i + 1]); } @@ -186,7 +194,7 @@ public class XMLStringBuffer { * @param tagName The name of the tag * @param value The value for this tag */ - public void addRequired(String tagName, String value) { + public void addRequired(String tagName, @Nullable String value) { addRequired(tagName, value, (Properties) null); } @@ -197,10 +205,10 @@ public class XMLStringBuffer { * @param value The value for this tag * @param attributes A Properties file containing the attributes (or null) */ - public void addRequired(String tagName, String value, Properties attributes) { + public void addRequired(String tagName, @Nullable String value, @Nullable Properties attributes) { XMLUtils.xmlRequired(m_buffer, m_currentIndent, tagName, value, attributes); } - public void addRequired(String tagName, String value, String... attributes) { + public void addRequired(String tagName, @Nullable String value, String... attributes) { addRequired(tagName, value, createProperties(attributes)); } @@ -211,12 +219,16 @@ public class XMLStringBuffer { * @param value The value for this tag * @param attributes A Properties file containing the attributes (or null) */ - public void addOptional(String tagName, String value, Properties attributes) { - XMLUtils.xmlOptional(m_buffer, m_currentIndent, tagName, value, attributes); + public void addOptional(String tagName, @Nullable String value, @Nullable Properties attributes) { + if (value != null) { + XMLUtils.xmlOptional(m_buffer, m_currentIndent, tagName, value, attributes); + } } - public void addOptional(String tagName, String value, String... attributes) { - XMLUtils.xmlOptional(m_buffer, m_currentIndent, tagName, value, createProperties(attributes)); + public void addOptional(String tagName, @Nullable String value, String... attributes) { + if (value != null) { + XMLUtils.xmlOptional(m_buffer, m_currentIndent, tagName, value, createProperties(attributes)); + } } /** @@ -225,7 +237,7 @@ public class XMLStringBuffer { * @param tagName The name of the tag * @param value The value for this tag */ - public void addOptional(String tagName, String value) { + public void addOptional(String tagName, @Nullable String value) { addOptional(tagName, value, (Properties) null); } @@ -236,7 +248,7 @@ public class XMLStringBuffer { * @param value The value for this tag * @param attributes A Properties file containing the attributes (or null) */ - public void addOptional(String tagName, Boolean value, Properties attributes) { + public void addOptional(String tagName, @Nullable Boolean value, @Nullable Properties attributes) { if (null != value) { XMLUtils.xmlOptional(m_buffer, m_currentIndent, tagName, value.toString(), attributes); } @@ -247,9 +259,8 @@ public class XMLStringBuffer { * added. * @param tagName The name of the tag * @param value The value for this tag - * @param attributes A Properties file containing the attributes (or null) */ - public void addOptional(String tagName, Boolean value) { + public void addOptional(String tagName, @Nullable Boolean value) { addOptional(tagName, value, null); } @@ -268,7 +279,7 @@ public class XMLStringBuffer { * @param tagName The name of the tag * @param attributes A Properties file containing the attributes (or null) */ - public void addEmptyElement(String tagName, Properties attributes) { + public void addEmptyElement(String tagName, @Nullable Properties attributes) { m_buffer.append(m_currentIndent).append("<").append(tagName); XMLUtils.appendAttributes(m_buffer, attributes); m_buffer.append("/>").append(EOL); diff --git a/src/main/java/org/testng/reporters/XMLUtils.java b/src/main/java/org/testng/reporters/XMLUtils.java index 5fd03ef..afe61af 100755 --- a/src/main/java/org/testng/reporters/XMLUtils.java +++ b/src/main/java/org/testng/reporters/XMLUtils.java @@ -1,5 +1,7 @@ package org.testng.reporters; +import org.testng.internal.Nullable; + import java.text.CharacterIterator; import java.text.StringCharacterIterator; import java.util.Map.Entry; @@ -20,12 +22,23 @@ public final class XMLUtils { // Hide constructor } - static public String xml(String indent, String elementName, String content, - Properties attributes) { + /** + * Generate tag. + * An opening and closing tag will be generated even if value is null. + * @param name name of the tag + * @param content content for this tag (or null) + * @param attributes tag attributes (or null) + */ + static public String xml(String indent, + String name, + @Nullable String content, + @Nullable Properties attributes) { IBuffer result = Buffer.create(); - xmlOpen(result, indent, elementName, attributes, true /* no newline */); - result.append(content); - xmlClose(result, "", elementName, XMLUtils.extractComment(elementName, attributes)); + xmlOpen(result, indent, name, attributes, true /* no newline */); + if (content != null) { + result.append(content); + } + xmlClose(result, "", name, XMLUtils.extractComment(name, attributes)); return result.toString(); } @@ -52,14 +65,14 @@ public final class XMLUtils { } public static void xmlOptional(IBuffer result, String sp, - String elementName, String value, Properties attributes) { + String elementName, @Nullable String value, Properties attributes) { if (null != value) { xmlRequired(result, sp, elementName, value, attributes); } } public static void xmlRequired(IBuffer result, String sp, - String elementName, String value, Properties attributes) { + String elementName, @Nullable String value, @Nullable Properties attributes) { result.append(xml(sp, elementName, value, attributes)); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

