You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/10/09 17:32:20 UTC
[jira] [Commented] (SUREFIRE-1293) Simplify
org.apache.maven.plugin.surefire.report.TestSetRunListener by using the
null object pattern
[ https://issues.apache.org/jira/browse/SUREFIRE-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15560333#comment-15560333 ]
ASF GitHub Bot commented on SUREFIRE-1293:
------------------------------------------
Github user Tibor17 commented on a diff in the pull request:
https://github.com/apache/maven-surefire/pull/127#discussion_r82527079
--- Diff: maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java ---
@@ -76,7 +76,7 @@ public TestSetRunListener( ConsoleReporter consoleReporter, FileReporter fileRep
StatisticsReporter statisticsReporter, boolean trimStackTrace,
boolean isPlainFormat, boolean briefOrPlainFormat )
{
- this.consoleReporter = consoleReporter;
+ this.consoleReporter = consoleReporter != null ? consoleReporter : new NullConsoleReporter();
--- End diff --
All of these classes are in `surefire-common` project. Therefor it would be nice not to create a new object
`new NullConsoleReporter()` but instead keep it as static final constant in abstract Factory in surefire-common.
This would mean that such null-check may be embedded in the factory, e.g. `buildConsoleReporter()`. I would say that the caller should pass non-null consistent object into this class `TestSetRunListener` via constructor and the called class should not make any guess about it (means if == null => guess hide the error). If we accepted such paradigm then all such occurrences in this PR would have to change it.
> Simplify org.apache.maven.plugin.surefire.report.TestSetRunListener by using the null object pattern
> ----------------------------------------------------------------------------------------------------
>
> Key: SUREFIRE-1293
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1293
> Project: Maven Surefire
> Issue Type: Improvement
> Components: Maven Surefire Plugin
> Reporter: Benedikt Ritter
> Labels: github
> Fix For: 2.19.2
>
>
> The class org.apache.maven.plugin.surefire.report.TestSetRunListener has a lot of checks like this:
> {code:java}
> if( field != null )
> {
> // do something with field
> }
> {code}
> This can be simplified by providing fallback implementations for the fields being used by TestSetRunListener.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)