Skip to content

Commit 27912b1

Browse files
committed
Prevent accidental printing to System.err in the codebase
This also revises the Checkstyle rule so that invocations such as System.out.printf() are also forbidden.
1 parent 8ffbafd commit 27912b1

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

Diff for: src/checkstyle/checkstyle-suppressions.xml

+5-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="AnnotationLocation|AnnotationUseStyle|AtclauseOrder|AvoidNestedBlocks|FinalClass|HideUtilityClassConstructor|InnerTypeLast|JavadocStyle|JavadocType|JavadocVariable|LeftCurly|MultipleVariableDeclarations|NeedBraces|OneTopLevelClass|OuterTypeFilename|RequireThis|SpringCatch|SpringJavadoc|SpringNoThis"/>
1515
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="RegexpSinglelineJava" id="toLowerCaseWithoutLocale"/>
1616
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="RegexpSinglelineJava" id="toUpperCaseWithoutLocale"/>
17-
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="RegexpSinglelineJava" id="systemOutPrintln"/>
17+
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="RegexpSinglelineJava" id="systemOutErrPrint"/>
1818
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]org[\\/]springframework[\\/].+(Tests|Suite)" checks="IllegalImport" id="bannedJUnitJupiterImports"/>
1919
<suppress files="[\\/]src[\\/](test|testFixtures)[\\/](java|java21)[\\/]" checks="SpringJUnit5" message="should not be public"/>
2020

@@ -43,7 +43,8 @@
4343

4444
<!-- spring-core -->
4545
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/](asm|cglib|objenesis|javapoet)[\\/]" checks=".*"/>
46-
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/]aot[\\/]nativex[\\/]feature[\\/]" checks="RegexpSinglelineJava" id="systemOutPrintln"/>
46+
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/]aot[\\/]nativex[\\/]feature[\\/]" checks="RegexpSinglelineJava" id="systemOutErrPrint"/>
47+
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/](core|util)[\\/](SpringProperties|SystemPropertyUtils)" checks="RegexpSinglelineJava" id="systemOutErrPrint"/>
4748
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/]lang[\\/]" checks="IllegalImport" id="bannedImports" message="javax"/>
4849
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/]lang[\\/]" checks="RegexpSinglelineJava" id="packageLevelNonNullApiAnnotation" />
4950
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]springframework[\\/]lang[\\/]" checks="RegexpSinglelineJava" id="packageLevelNonNullFieldsAnnotation" />
@@ -66,7 +67,7 @@
6667

6768
<!-- spring-jcl -->
6869
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]apache[\\/]commons[\\/]logging[\\/]" checks="Header|SpringNoThis|IllegalImport"/>
69-
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]apache[\\/]commons[\\/]logging[\\/]" checks="RegexpSinglelineJava" id="systemOutPrintln"/>
70+
<suppress files="[\\/]src[\\/]main[\\/]java[\\/]org[\\/]apache[\\/]commons[\\/]logging[\\/]" checks="RegexpSinglelineJava" id="systemOutErrPrint"/>
7071

7172
<!-- spring-jdbc -->
7273
<suppress files="ResultSetWrappingSqlRowSet" checks="JavadocStyle"/>
@@ -123,6 +124,7 @@
123124
<suppress files="org[\\/]springframework[\\/]web[\\/]bind[\\/]annotation[\\/]CrossOrigin" checks="JavadocStyle"/>
124125
<suppress files="org[\\/]springframework[\\/]web[\\/]bind[\\/]annotation[\\/]RequestMethod" checks="JavadocVariable"/>
125126
<suppress files="org[\\/]springframework[\\/]web[\\/]bind[\\/]annotation[\\/]ValueConstants" checks="InterfaceIsType"/>
127+
<suppress files="org[\\/]springframework[\\/]web[\\/]util[\\/]ServletContextPropertyUtils" checks="RegexpSinglelineJava" id="systemOutErrPrint"/>
126128
<suppress files="PatternParseException" checks="JavadocVariable"/>
127129
<suppress files="web[\\/]reactive[\\/]socket[\\/]CloseStatus" checks="JavadocStyle"/>
128130
<suppress files="RestClientResponseException" checks="MutableException"/>

Diff for: src/checkstyle/checkstyle.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,11 @@
238238
<property name="ignoreComments" value="true"/>
239239
</module>
240240
<module name="com.puppycrawl.tools.checkstyle.checks.regexp.RegexpSinglelineJavaCheck">
241-
<property name="id" value="systemOutPrintln"/>
242-
<property name="format" value="System\.out\.println"/>
241+
<property name="id" value="systemOutErrPrint"/>
242+
<property name="format" value="System\.(out|err)\.print"/>
243243
<property name="maximum" value="0"/>
244244
<property name="message"
245-
value="System.out.println calls are forbidden in the main codebase"/>
245+
value="Printing to System.out and System.err is forbidden in the main codebase"/>
246246
<property name="ignoreComments" value="true"/>
247247
</module>
248248
<module

0 commit comments

Comments
 (0)