[ 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)