Checkstyle Changelog

What's new in Checkstyle 6.16.1

Mar 11, 2016
  • Bug fixes:
  • fix TokenTypes compatibility problems between 6.15 and 6.16. Author: rnveach #2997
  • Allow JUnit ClassRule to be public. Author: Andrej Vano #2987
  • FinalParameters should not warn for non-final parameters of native methods . Author: rnveach #2981
  • Notes:
  • Revert "Issue #2973: removed unused FLOAT_SUFFIX from java.g". Author: Roman Ivanov
  • all rows in coerage table google_style.html shoudl have anchor. Author: rnveach #2975
  • Strive for 100% line coverage for java grammar. Author: rnveach #2973

New in Checkstyle 6.16 (Feb 29, 2016)

  • Breaking backward compatibility:
  • Move Treewalker cache to Checker. Author: Andrei Selkin #569
  • New:
  • Make CLI option to be able to print Javadoc tree as plain text. Author: Baratali Izmailov #652
  • copy Check class to AbstractCheck class to let deprecate Check class. Author: rnveach, Roman Ivanov #2551
  • Print parse tree from CLI to terminal. Author: Vladislav Lisetskiy #2638
  • Bug fixes:
  • Skip type annotations from validation of ModifierOrderCheck. Author: Andrei Selkin #903
  • Probable typo in com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck. Author: Andrei Selkin #2762
  • Indentation check reports some incorrect indentation levels on errors. Author: rnveach #2941
  • 6.15 complains about missing @return tag in a overridden method. Author: Vladislav Lisetskiy #2869
  • Nesting Checks in each other in config does not produce any error. Author: rnveach #2773
  • Forbid multiple violation for the same line in IndentaitonCheck. Author: liscju #676
  • LeftCurly not working correctly with lambdas. Author: liscju #2818
  • Duplicate error message for static final field in DeclarationOrder check. Author: liscju #1048
  • Translation Check: wrong support for resources with language, country, variant. Author: Andrei Selkin #2251
  • Checkstyle internal exceptions lack contextual information. Author: Andrei Selkin #2285
  • Changed semantics of PropertyExpander. Author: Petr Hejl #2886
  • Indentation properties not applied properly to lambdas. Author: rnveach #281
  • VisibilityModifier.allowPublicImmutableFields should allow public immutable fields in enums. Author: Vladislav Lisetskiy #2887
  • FinalClass is over aggressive when extending happen inside class. Author: liscju #2822
  • WhitespaceAround should have an option allow double-brace initialization. Author: liscju #2838
  • Exception when using method reference in lamba "Class[]::new". Author: Ilja Dubinin #2729
  • Wasted disk access. Author: rnveach #2103
  • JavadocType doesn't report unused param tag. Author: liscju #2811
  • DeclarationOrder check enforces order that is not possible. Author: Andrei Selkin #924
  • Tabs are wrongly handled in Indentation check when line is wrapped. Author: rnveach #2795
  • custom javadoc inline tags cause parse error. Author: rnveach #1184
  • JavadocStyleCheck: String index out of range: -1. Author: rnveach #2788
  • Notes:
  • Strive for 100% line coverage for java grammar. Author: rnveach #2973
  • Refactor Comments AST Test. Author: rnveach #2396
  • doc: example to checkstyle's Ant configuration was added to anttask.html. Author: Roman Ivanov
  • Travis: add xwiki project to regeression testing. Author: Vladislav Lisetskiy #2938
  • PMD: resolve problems from DefaultPackage rule. Author: Vladislav Lisetskiy, Roman Ivanov #957
  • doc: Improve javadoc of parameters of AnnotationLocationCheck.. Author: liscju
  • fix java8 compilation broblems in Inputs. Author: rnveach #2904
  • Create web-page with instructions: how to create Javadoc Check. Author: Baratali Izmailov #410
  • PMD ExceptionAsFlowControl: Do not use exceptions as flow control to create objects in PackageObjectFactory. Author: Vladislav Lisetskiy #1159
  • ant with failOnViolation="false" will FAIL. Author: Vladislav Lisetskiy #2185
  • Checkstyle cannot be built using JDK9 as tools.jar has been dropped . Author: Peter Wong #2905
  • CS' java 8 code isn't compilable. Author: rnveach #2880
  • doc: NPath documentation is extended. Author: Roman Ivanov
  • Refactor gui package. Author: Vladislav Lisetskiy #2609
  • spelling: Correct spelling for fast-forward-merge.sh. Author: Thomas Paul Mann
  • UTs should be launched in default locale. Author: Vladislav Lisetskiy #2783
  • Disallow usage of java.util.Stack and java.util.Vector in code. Author: Andrei Selkin #2859

New in Checkstyle 6.15 (Feb 29, 2016)

  • New:
  • new Check: RegexpOnFilename. Author: rnveach, Roman Ivanov #2546
  • SuppressionFilter: new option 'optional' to allow skip SuppressionFilter if config file does not exist. Author: liscju #1002
  • Add possibility to specify a unique ID to all Regexp checks. Author: Andrei Selkin #1008
  • Bug fixes:
  • StringIndexOutOfBoundsException in Indentation check. Author: rnveach #2645
  • AbstractJavadocCheck should process only doc comments placed before class, interface, constructor, method, or field declarations. Author: Baratali Izmailov #325
  • SummaryJavadoc: false "end with a period" reports when inheritDoc is used . Author: rnveach #2805
  • JavadocMethod: allowedAnnotations hides bad javadocs. Author: rnveach #2806
  • FinalLocalVariable doesn't report variable when condition separates 2 assignments. Author: Bhavik Patel #2807
  • Config of Google Style does not include InterfaceTypeParameterName check. Author: Andrei Selkin #2792
  • Indentation on annotation parameters is wrong. Author: liscju #1349
  • OneStatementPerLine check and lambda expression. Author: liscju #2688
  • Gui should have a splitter bettween tree and code and prefered columns size. Author: liscju #2767
  • RequireThis reports false-positive when an instance method is overloaded with a static one. Author: Vladislav Lisetskiy #2539
  • Notes:
  • Add checkstyle messages to xdocs. Author: rnveach #2836
  • Setup 'Circle CI' to run checkstyle-tester project on JDK sources. Author: Vladislav Lisetskiy, Roman Ivanov #2815
  • Enforce Checks of sevntu.checkstyle (released version) over Checkstyle source code. Author: Yasser Aziza #2661
  • Use Codeship CI for testing. Author: Roman Ivanov #2727
  • Refactor gui package. Author: Vladislav Lisetskiy, Roman Ivanov #2609
  • doc: Add sbt-checkstyle-plugin to list of active tools. Author: Andrew Johnson

New in Checkstyle 6.14.1 (Feb 29, 2016)

  • Bug fixes:
  • JavaNCSSCheck: unknown format type: numero inteiro. Author: Roman Ivanov #2728
  • StringIndexOutOfBoundsException in getCheckShortName method of AuditEventDefaultFormatter. Author: Andrei Selkin #2780
  • Notes:
  • spelling: fix typo in AuditEventFormatter class name. Author: Andrei Selkin

New in Checkstyle 6.14 (Feb 29, 2016)

  • Breaking backward compatibility:
  • Remove parameters validation from LocalVariableName. Author: Andrei Selkin #2549
  • New:
  • Print name of the Check after printing violation message. Author: Andrei Selkin #2666
  • WhitespaceAround should have an allowEmptyLambda parameter. Author: liscju #2603
  • Add ENUM_CONSTANT_DEF support to MethodParamPad . Author: Andrei Selkin #2505
  • new CatchParameterName Check: to validate names of catch-block parameters only. Author: Michal Kordas #2616
  • Bug fixes:
  • FinalLocalVariable false-positive in SWITCH. Author: Bhavik Patel #2405
  • Typo in Javadoc tag name. Author: Baratali Izmailov #2376
  • Extend parsing rule of custom Javadoc tag name. Author: Baratali Izmailov #461
  • Nesting Checks in each other in config does not produce any error. Author: Roman Ivanov #2773
  • RequireThis check message is not clear enough. Author: Vladislav Lisetskiy #2239
  • OneStatementPerLine: false match with try-with-resources. Author: Jon Bake #2211
  • Performance issue in UnusedImportsCheck. Author: Vladislav Lisetskiy #2631
  • Remove unused message. Author: Vladislav Lisetskiy #2756
  • Create directory structure needed to store cache file. Author: Andrei Selkin #2575
  • AbbreviationAsWordInName incorrectly reports constants in annotations. Author: Abram Thielke #2694
  • Inconsistent violations for NeedBraces/allowSingleLineStatement. Author: liscju #2291
  • ParameterNameCheck: NullPointerException over checkstyle's input file. Author: Andrei Selkin #2678
  • @SuppressWarnings annotation does not suppress UncommentedMain. Author: Andrei Selkin #2646
  • UncommentedMain does not rise violations if main method has varargs as parameters. Author: Vladislav Lisetskiy #2647
  • Fix 'tokens' property in JavadocStyle check. Author: Thomas Jensen #2644
  • GenericWhitespace: violation on generic like '...... instanceof Type;'. Author: liscju #2633
  • AbbreviationAsWordInName: update message to print name that violates a format. Author: liscju #2640
  • Notes:
  • Use Nexus Staging Maven Plugin for release process. Author: Roman Ivanov #2619
  • Enforce Checks of sevntu.checkstyle (released version) over Checkstyle source code. Author: Andrei Selkin #2661
  • Make UT 'testNonAccessibleFile' locale independent . Author: Andrei Selkin #2749
  • Refactor gui package. Author: Vladislav Lisetskiy #2609
  • Make DetectorOptions as final and immutable. Author: Andrei Selkin #2523
  • Fix additional issues reported by IntelliJ IDEA inspections in Checkstyle code. Author: Roman Ivanov #2080
  • conf: update guava version to 19.0. Author: Roman Ivanov
  • doc: Correct regexp in configuration example for ParameterNameCheck. Author: Andrei Selkin
  • doc: Add example for ParameterName into xdoc. Author: Andrei Selkin
  • doc: Fix check name in CatchParameterName xdoc. Author: Andrei Selkin
  • doc: Update comment in google_checks.xml. Author: Michal Kordas
  • Reorganize token sets in UncommentedMain. Author: Vladislav Lisetskiy #2671
  • refactor internal tests. Author: rnveach #2625
  • Update configuration for XXXXName Checks at checkstyle_checks.xml. Author: Andrei Selkin #2604
  • Make validation of expected warnings in integration tests more strict. Author: Vladislav Lisetskiy #2658
  • spelling: fix typo in word 'Existing' in google_style.xml. Author: liscju
  • Fix ParseTreeBuilder's variable names to be more readable. Author: Baratali Izmailov #2642

New in Checkstyle 6.13 (Feb 29, 2016)

  • Breaking backward compatibility:
  • Remove access to undocumented check properties. Author: rnveach #2451
  • New:
  • ParameterName: new option to skip methods with Override annotation. Author: Andrei Selkin #2290
  • Bug fixes:
  • False negative in RequireThis check. Author: Vladislav Lisetskiy #2240
  • Checkstyle throws NumberFormatException on Japanese locale when sizes and metrics Checks are used. Author: Takahashi Eikou #2601
  • EmptyLineSeparator check does not validate newlines before class and after last method. Author: Vladislav Lisetskiy #2067
  • FallThroughCheck handles finally incorrectly. Author: Vladislav Lisetskiy #1438
  • EqualsAvoidNull check should сheck String concatenations. Author: Vladislav Lisetskiy #1930
  • Notes:
  • minor: remove maven-failsafe-plugin from linkcheck excludes, since link was fixed. Author: Andrei Selkin
  • minor: build-helper-maven-plugin version bump to 1.10. Author: Roman Ivanov
  • adjust AbbreviationAsWordInName in checkstyle_checks.xml to catch unexpected abbreviations. Author: Roman Ivanov #2639
  • Fix additional issues reported by IntelliJ IDEA inspections in Checkstyle code. Author: Michal Kordas #2080
  • minor: fixed improper put that should be get. Author: rnveach
  • Code review of CommentsIndentationCheck.java. Author: Andrei Selkin #2530
  • Remove drag&drop from GUI. Author: Ilja Dubinin #2608
  • create HTML web page to describe how to open issues against Checkstyle. Author: Michal Kordas, Roman Ivanov #2344
  • Update JGit to 4.1.1.201511131810-r. Author: Michal Kordas #2607
  • Make methods private in RequireThisCheck. Author: Vladislav Lisetskiy #2605
  • Tests for validating commit message should not allow period at the end of commit message. Author: Andrei Selkin #2590
  • doc: Correct xdoc/javadoc for ParameterNameCheck. Author: Andrei Selkin
  • unify IT test code. Author: rnveach #2589
  • minor: separated tests so one subject per file. Author: rnveach
  • Deactivate 'allowSamelineSingleParameterlessAnnotation' property of AnnotationLocation in Checkstyle config. Author: Michal Kordas #2581
  • Create test for checkstyle-X.X-all.jar on Travis. Author: Roman Ivanov #2516
  • Update slf4j-simple to 1.7.13. Author: Michal Kordas #2586
  • Update FindBugs Maven Plugin to 3.0.3. Author: Michal Kordas #2585
  • PMD: resolve problems from DefaultPackage rule. Author: Michal Kordas #957
  • minor: fixed wrong variable usage in AbstractOptionCheck. Author: rnveach
  • Remove usage of System.out.println in IT resources. Author: Michal Kordas, Roman Ivanov #2541
  • Unify naming of all files with IT inputs. Author: rnveach #2540
  • UT to validate google/sun style xdocs. Author: rnveach #2557
  • Unify naming of all files with test inputs. Author: rnveach, Roman Ivanov #2161
  • spelling: fix strange japanese.. Author: Nobuyuki-Inaba
  • Improve documentation for CovariantEquals check. Author: Vladislav Lisetskiy #1031

New in Checkstyle 6.12.1 (Feb 29, 2016)

  • New:
  • Add 'ignoreOverridden' option to skip methods with @Override annotation. Author: Andrei Selkin #2290
  • Bug fixes:
  • Fix RedundantModifier at final methods in anonymous class. Author: rnveach #2122
  • Performance-Optimization: Do not recompile Pattern for each file/line. Author: Fabian Loewner #2495
  • Fix skipping validation for non empty classes when allowEmptyTypes is true. Author: Andrei Selkin #2480
  • NeedBraces: allow no body loops. Author: Andrei Selkin #2436
  • Make 'processJavadoc' property 'true' by default. Author: Vladislav Lisetskiy #1627
  • spelling: fix strange japanese. Author: Nobuyuki-Inaba #2524
  • Notes:
  • removed excess hierarchy from several Checks. Author: rnveach #2451
  • deprecated AbstractIllegalCheck. Author: rnveach #2451
  • removed xdoc google style links to master. Author: rnveach #2519
  • removed xdoc links to master. Author: rnveach #2519
  • added xdoc example url validation. Author: rnveach #2517
  • added xdoc check order validation, all xdoc are sorted. Author: rnveach #2292
  • validate existence of config file sooner. Author: rnveach #1267
  • reorganized checkstyle_checks.xml. Author: rnveach #2526
  • Describe token sets in 'writing checks' section in xdoc. Author: Vladislav Lisetskiy #2346
  • Update System Rules to 1.13.0. Author: Michal Kordas #2513

New in Checkstyle 6.12 (Feb 29, 2016)

  • Bug fixes:
  • CommentsIndentationCheck doesn't report errors at end of block. Author: Andrei Selkin #2078
  • Fix NoWhitespaceAfterCheck. Author: attatrol #1013
  • Fix NPE in EqualsAvoidNull check. Author: Vladislav Lisetskiy #2474
  • Fix FinalLocalVariable false-negative. Author: Vladislav Lisetskiy #1551
  • Exclude lines with package in LineLength check. Author: rnveach #2482
  • fixed NPE in NeedBraces.isSingleLineFor. Author: rnveach #2283
  • JavaDocMethod: Exception thrown for incomplete @return tag if next line is empty. Author: John Erik Halse #2398
  • Fix reusability of JavaDoc checks. Author: Björn Kautler #2326
  • Fixed blank line indentification for EmptyLineSeparator check. Author: Pavel Baranchikov #2266
  • Support for @SuppressWarnings("all").. Author: Stéphane Galland #2275
  • Make SuppressWarningsFilter case-insensitive. Author: Michal Kordas #2202
  • Fix NPE in ModifiedControlVariable on SuppressWarnings. Author: Michal Kordas #2327
  • Do not recognize '/**/' as valid Javadoc. Author: Michal Kordas #2387
  • Make JavadocType check customizable by list of tokens. Author: Michal Kordas #2388
  • Fix FALSE positive in JavadocStyle check on inheritDoc tag. Author: Michal Kordas #2411
  • Ignore missing Javadoc for 'serialVersionUID' fields. Author: Michal Kordas #792
  • Exclude lines with imports in LineLength check. Author: Michal Kordas #2433
  • IllegalTypeCheck, requiredTokens is set to IMPORT only. Author: Roman Ivanov #2415
  • CLI should print a file name where exception is happen. Author: Roman Ivanov #2109
  • LeftCurly: add Anonymous class to allowed tokens. Author: Roman Ivanov #2431
  • Notes:
  • Deploy snapshots versions in CI. Author: WonderCsabo #2167
  • require all filters appear in checkstyle_checks.xml. Author: rnveach #2268
  • removed xdoc of CustomImportOrder.samePackageMatchingDepth. Author: rnveach #2453
  • added xdoc check validation. Author: rnveach #2442
  • Run CheckStyle on Full Test Directory. Author: rnveach #2421
  • fixed invalid xml examples in xdocs. Author: rnveach #2425
  • flush audit outputs sooner. Author: rnveach #2085
  • unify test input locations for whole project. Author: rnveach #2161
  • removed excess hierarchy from few Check. Author: rnveach #2451
  • Bunch of refactoring and code optimizarion. Author: rnveach
  • Update list of missing tools. Author: Dawid Nejman #1238
  • Sonarqube found problems in Checkstyle. Author: Ilja Dubinin #46
  • Replaced outdated link for bamboo-checkstyle-plugin. Author: Dawid Nejman #1238
  • 'forbiddenapis' plugin added to maven config. Author: Ruslan Diachenko #1217
  • Update list of related Tools. Author: Dawid Nejman #1238
  • skip all analysers during deploy. Author: Roman Ivanov #2167
  • usage of error-prone plugin is commented out till problems with Eclipse resovled. Author: Roman Ivanov #2160
  • Inconvenience to debug UTs after recent changes in BaseCheckTestSupport. Author: Roman Ivanov #2434
  • Fix PMD violations for ShortVariable rule. Author: Roman Ivanov #985
  • PMD violations PreserveStackTrace. Author: Roman Ivanov #996
  • PMD violations EmptyMethodInAbstractClassShouldBeAbstract. Author: Roman Ivanov #997
  • PMD violation ConfusingTernary. Author: Roman Ivanov #974
  • rename CheckUtils.isVoidMethod to isNonVoidMethod. Author: Roman Ivanov #2273
  • Decrease visibility of package-private methods. Author: Michal Kordas #957
  • Rename tests to match tested class name with Test suffix. Author: Michal Kordas #2215
  • Fix all issues for Java found by Codacy static analysis tool. Author: Michal Kordas #2271
  • Fix missing code coverage. Author: Michal Kordas #2243
  • Fix typos in code. Author: Michal Kordas #2080
  • Update Maven Shade Plugin to 2.4.2. Author: Michal Kordas #2464
  • Update Maven Surefire and Failsafe plugins to 2.19. Author: Michal Kordas #2394
  • Update Maven Assembly Plugin to 2.6. Author: Michal Kordas #2350
  • Update JGit to 4.1.0.201509280440-r. Author: Michal Kordas #2324
  • Update PowerMock to 1.6.3. Author: Michal Kordas #2293

New in Checkstyle 6.11.2 (Feb 29, 2016)

  • Bug fixes:
  • Make ConfigurationLoader.loadConfiguration public. Author: Michal Kordas #2260
  • Notes:
  • Create UT to check that all checkstyle modules have xdocs. Author: Andrei Selkin #819
  • Split config.html into few pages. Author: Andrei Selkin #819
  • Create xdoc documentation for FileContentsHolder. Author: Andrei Selkin #819
  • Add GENERIC_START and GENERIC_END into list of acceptable tokens in xdocs of NoWhiteSpaceAfter and WhiteSpaceAround. Author: Andrei Selkin #2258
  • Add COMMA into list of acceptable tokens in xdocs of NoWhiteSpaceBefore. Author: Andrei Selkin #2259
  • minor refactoring, helper method was added. Author: Aleksandr Ivanov #2231
  • fixed jgit resource leaks in commit validation. Author: rnveach
  • Ilja Dubinin was added as developer. Author: Roman Ivanov
  • Add WILDCARD_TYPE into list of acceptable tokens in xdocs of WhitespaceAround. Author: Andrei Selkin

New in Checkstyle 6.11.1 (Feb 29, 2016)

  • Bug fixes:
  • Add lambda support to indentation check (see #281). Author: Pieter Noordhuis #1548
  • Notes:
  • Coverage has been increased to 100% in 'checks' package. Author: Ilja Dubinin #1290
  • Resolve Doxia Site Renderer warnings. Author: Vladislav Lisetskiy #905
  • Update plexus-compiler-javac-errorprone to 2.6. Author: Michal Kordas #2247
  • Update JGit to 4.0.2.201509141540-r. Author: Michal Kordas #2246
  • Fix release failure due to unknown Javadoc tag. Author: Michal Kordas #2245

New in Checkstyle 6.11 (Feb 29, 2016)

  • Breaking backward compatibility:
  • Restore 'url' option for ImportControl. Author: Aleksandr Ivanov #2231
  • New:
  • New option 'requiredTranslations' to Translation check. Author: Andrei Selkin #2166
  • New option 'switchBlockAsSingleDecisionPoint' for CyclomaticComplexityCheck. Author: Andrei Selkin #2029
  • Bug fixes:
  • Fix java grammar for unicode escape. Author: rnveach #157
  • Add basic thread-safety to Javadoc checks. Author: Michal Kordas #2237
  • Fixed NPE in FinalLocalVariableCheck. Author: rnveach #1257
  • NoWhitespaceAfter, NoWhitespaceBefore and WhitespaceAround don't support GENERIC_START nor GENERIC_END tokens. Author: Roman Ivanov #2219
  • Add support of lambdas which parameter types are omitted for HiddenFieldCheck. Author: Andrei Selkin #2175
  • Fix RedundantModifier check at final classes in interfaces. Author: Michal Kordas #2203
  • Print missing cause of exception to console on error. Author: Michal Kordas #2213
  • Fix not working excludeScope in JavadocMethod check. Author: Michal Kordas #2205
  • Fix RedundantModifier check to recognise inner classes accessible from global scope. Author: liscju #1537
  • CustomImportOrderCheck rule priorities. Author: Aleksandr Ivanov #1273
  • Fix false negative in AtclauseOrder check. Author: Vladislav Lisetskiy #2095
  • Fix IllegalStateException in JavadocTypeCheck. Author: Vladislav Lisetskiy #2112
  • Allow COMMA again in NoWhiteSpaceBefore. Author: Roman Ivanov #2089
  • Fix HiddenField false positive violations for anonymous classes. Author: Andrei Selkin #382
  • Added support of logging severity for all audit events. Author: Andrei Selkin #67
  • Allow @return tags from annotation types. Author: Phillip Webb #2141
  • Fixed redundant modifier false positive for abstract classes in interfaces. Author: Andrei Selkin #1833
  • Ignore classes nested in interaces or annotations in Final Class Check. Author: Vladislav Lisetskiy #2064
  • Detect nested enums marked as static in RedundantModifier check. Author: Vladislav Lisetskiy #1530
  • Fixed NPE in MutableExceptionCheck.isExtendedClassNamedAsException. Author: Andrei Selkin #1903
  • Change message in SummaryJavadocCheck. Author: Vladislav Lisetskiy #2062
  • Notes:
  • Update HTML documentation to describe all options for all checks. Author: Andrei Selkin #2169
  • Make link for each row of Google style coverage table. Author: Vladislav Lisetskiy #1005
  • Add docs about while idiom to InnerAssignment check. Author: Michal Kordas #2230
  • Fix additional issues reported by IntelliJ IDEA inspections in Checkstyle code. Author: Michal Kordas #2080
  • SuppressionsLoaderTest UT was stabilized. Author: Ruslan Diachenko #2191
  • ROOT locale added in checker creation for UT; travis updated with a new check. Author: Ruslan Diachenko #2193
  • Update Error Prone to 2.0.5. Author: Michal Kordas #2216
  • Add "Input" prefix to test input files. Author: Michal Kordas #2161
  • Create MacOS matrix item for Travic-CI. Author: Roman Ivanov #2210
  • POM still references nexus.codehaus.org repo. Author: Roman Ivanov #2200
  • Make coverage 100% for TokenTypesDoclet. Author: Vladislav Lisetskiy #2126
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks. Author: Ilja Dubinin #1290
  • Use StandardCharsets and get rid of UnsupportedEncodingException. Author: Michael Osipov #2034
  • Remove errors from Maven output in TokenTypesDocletTest. Author: Vladislav Lisetskiy #2195
  • Anchor naming checks in google_style.xml. Author: Vladislav Lisetskiy #2108
  • AbstractHeaderCheck coverage has been increased to 100%. Author: Ilja Dubinin #1292
  • Sonarqube found problems in Checkstyle. Author: Ilja Dubinin #46
  • CopyPasted ITs. Author: Vladislav Lisetskiy #2074
  • Update Maven Wagon to 2.10. Author: Michal Kordas #2183
  • Update Maven Project Info Reports Plugin to 2.8.1. Author: Michal Kordas #2182
  • Split all modules to be separate at config_naming.html. Author: Vladislav Lisetskiy #2108
  • Remove already fixed exclusion from PMD configuration. Author: Michal Kordas #961
  • Add SLF4J binding required by JGit. Author: Michal Kordas #2129
  • Configure compiler to use Error Prone for non-input sources. Author: Michal Kordas #2160
  • Rearrange POM to use canonical ordering. Author: Michal Kordas #809
  • Unify naming files with test inputs. Author: Michal Kordas #2161
  • Create wide message for CheckstyleException in PackageObjectFactory. Author: Andrei Selkin #759
  • Fix compiler warnings in input files. Author: Michal Kordas #2130
  • Updated checkstyle_checks.xml to use ParameterNumber in default configuration. Author: Andrei Selkin #215
  • Extended Eclipse user guide for newbies of Checkstyle. Author: Andrei Selkin #606
  • Fix exception at NeedBraces check in enhanced for loops. Author: Michal Kordas #2135
  • Make test for FileTabCharacter locale and OS independent. Author: Michal Kordas #2137
  • Add inspection scope profile for IDEA analysis. Author: Michal Kordas #2131
  • Fix issues reported by IntelliJ IDEA inspections in Checkstyle code. Author: Michal Kordas #1555
  • Added tests for validating commit message. Author: liscju #937
  • Fix StringIndexOutOfBoundsException. Author: Vladislav Lisetskiy #2094
  • Activated TranslationCheck in checkstyle_checks.xml. Author: Andrei Selkin #2092
  • Fix Javadoc generation failure after addition of new tag. Author: Michal Kordas #2106
  • Add Codacy badge to main page. Author: Michal Kordas #2054
  • Update all Checks html docs with link to hosted configurations. Author: Vladislav Lisetskiy #1214
  • Create separate web page for old release notes. Author: Vladislav Lisetskiy #2063
  • Extended javadoc/xdoc for RightCurlyCheck. Author: Andrei Selkin #1900
  • Added UT which validates that all checks which exist in classpath are referenced in checkstyle_checks.xml. Author: Andrei Selkin #945
  • Add suppression for IntelliJ IDEA inspection. Author: Michal Kordas #2065
  • Refactoring of TreeWalker to increase readability. Author: Andrei Selkin
  • Corrected javadoc/xdoc for IllegalTypeCheck. Author: Andrei Selkin

New in Checkstyle 6.10.1 (Feb 29, 2016)

  • Bug fixes:
  • broken compatibility with maven-checkstyle-plugin:2.15 at checkstyle:6.10. Author: Roman Ivanov #2065

New in Checkstyle 6.10 (Feb 29, 2016)

  • Breaking backward compatibility:
  • 'ignoreMethods' option has been removed from DeclarationOrderCheck. Author: Baratali Izmailov #2031
  • fix typos in properties names. Author: Michal Kordas in scope of #1555
  • Rethrow all exceptions further to caller of Checker. Author: Ruslan Diachenko #1304
  • Improve exception handling in CheckstyleAntTask class. Author: Ruslan Diachenko #1245
  • New:
  • Added new Check: CommentsIndentationCheck. Author: Andrei Selkin #333
  • Bug fixes:
  • fixed problem with lexical order in CustomImportOrder. Author: Aleksandr Ivanov #1469
  • Extended messages for CustomImportOrder. Author: Aleksandr Ivanov #1648
  • Changed SAME_PACKAGE rule for CustomImportOrderCheck. Author: Aleksandr Ivanov #1262
  • reimplement EqualsAvoidNullCheck. Author: Vladislav Lisetskiy #1377
  • enforce all checks to override getRequiredTokens, getAcceptableTokens methods. Author: Andrei Selkin #655
  • IllegalType: add 'validateAbstractClassNames' option. Author: Andrei Selkin #1805
  • Marked 'maxLineLength' as '@Deprecated' at LeftCurlyCheck. Author: Andrei Selkin #965
  • Detect public constructors in non-public classes in RedundantModifier. Author: liscju #1537
  • Fixes logic bug in gui ParseTreeInfoPanel making linesToPositions assign lines to inappropriate positions. Author: liscju
  • Fix RightCurlyCheck with same option not to rise expression in single-line blocks. Author: liscju #1416
  • Fix UnsupportedOperationException in GUI. Author: Michal Kordas #1718
  • Notes:
  • Fix issues reported by IntelliJ IDEA inspections in Checkstyle code. Author: Michal Kordas #1555
  • Fix violations reported by Checkstyle checks. Author: Baratali Izmailov , Ruslan Diachenko #1566
  • Sonarqube found problems in Checkstyle. Author: Ilja Dubinin #46
  • Enable Checkstyle checks for 'gui' package. Author: Roman Ivanov #1678
  • Corrected links on website. Author: Andrei Selkin #751
  • Eclipse warnings about unused fields have been fixed. Author: Baratali Izmailov #1243
  • Simplify overqualified CSS element. Author: Michal Kordas #2054
  • Remove empty CSS rule. Author: Michal Kordas #2054
  • config: maven-enforcer-plugin and equalsverifier are updated to newest version. Author: Roman Ivanov
  • Make coverage 100% for some classes at package com.puppycrawl.tools.checkstyle.checks. Author: Ilja Dubinin #1290
  • Utils classes have been moved to utils package, new classes CommonUtils and TokenUtils. Author: Ilja Dubinin #1898
  • Use EqualsVerifier to test equals and hashCode in IntMatchFilter. Author: Michal Kordas #1088
  • Removed suppression for SwitchDensity rule from PMD. Author: Andrei Selkin #973
  • Remove obsolete entry from PMD configuration. Author: Michal Kordas #877
  • Remove unused Coveralls plugin from pom.xml. Author: Roman Ivanov #1881
  • Update ANTLR to 4.5.1-1. Author: Roman Ivanov #1880
  • Update EqualsVerifier to 1.7.4. Author: Roman Ivanov #1879
  • replace deprecated method in HiddenCheckField. Author: Vladislav Lisetskiy
  • Created JaCoCo profile of pom.xml. Author: Andrei Selkin #1173
  • Update Maven FindBugs Plugin to 3.0.2. Author: Michal Kordas #1714
  • Fixed typo in JavadocMethod's examples xdocs. Author: Andrei Selkin #1668
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.regexp. Author: Ilja Dubinin #1010
  • Fix headers for classes in 'gui' package. Author: Michal Kordas #945
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.coding.. Author: Baratali Izmailov #1293
  • Resolved javadoc problems that reported by java 8. Author: Andrei Selkin #291.
  • Minor typo fixes. Author: Dave Moloney

New in Checkstyle 6.9 (Aug 10, 2015)

  • Breaking backward compatibility:
  • Change default value of property "format" to "^Abstract.*$" in AbstractClassNameCheck. Author: Bhavik Patel #1279
  • New:
  • New option for MagicNumber: constantWaiverParentToken. Solution to not detected properly numbers. Author: Bhavik Patel #1266
  • Bug fixes:
  • Fixed NPE in MultipleVariableDeclarationsCheck Issue. Author: Baratali Izmailov #1539
  • Added column number into violation messages for RightCurlyCheck and LeftCurlyCheck. Author: Andrei Selkin #1511.
  • Fix BooleanExpressionComplexity check violations in Checkstyle code. Author: Andrei Selkin #1052
  • Add new option for RightCurlyCheck. Author: Andrei Selkin #1019.
  • Updated configuration for Eclipse Mars in xdoc. Author: Aleksandr Ivanov #1464
  • updated Xdoc and Javadoc for ImportOrder and CustomImportOrder. Author: Aleksandr Ivanov #1464
  • Remove from dependecies deprecated jar commons-beanutils-core.jar . Author: Roman Ivanov #1471
  • RedundantModifier for inner classes and enum constructors. Author: liscju #1242
  • Add missing xdocs for allowMultipleEmptyLines property of EmptyLineSeparatorCheck. Author: Andrei Selkin #881.
  • Add setter for 'ignoreEnums' in LeftCurlyCheck. Author: Andrei Selkin #975.
  • JavadocType does not check parameters in inner classes. Author: Pavel Baranchikov #1421
  • ImportOrderCheck. Fix separation for static imports. Author: Aleksandr Ivanov #1398
  • Fix for SuperClone and SuperFinalize checks reporting violations on native methods. Author: Vladislav Lisetskiy #1367
  • Fix FallThroughCheck fails on if with no else. Author: Andrei Selkin #1395.
  • fix JavadocParagraph allows new line before the next paragraph. Author: Vladislav Lisetskiy #1332
  • Fix RegexpHeader causing exception with default config. Author: Andrei Selkin #1129.
  • Fix OneStatementPerLine on multiple field initialization bug. Author: Andrei Selkin #1237.
  • extend target list fo SuppressWarningsHolder. Author: Vladislav Lisetskiy #1158
  • provide human message for SuppressWarningsHolder. Author: Vladislav Lisetskiy #1158
  • Raising exception for CustomImportOrder.SAME_PACKAGE. Author: Aleksandr Ivanov #1282
  • Notes:
  • Enable CustomImportOrder. Author: Aleksandr Ivanov #1459
  • Add UniquePropertiesCheck into checkstyle_checks.xml. Author: Andrei Selkin #1129.
  • Refactoring of FinalLocalVariableCheck to avoid 'fall through' violation. Author: Andrei Selkin #1395.
  • Add Organize Imports instructions to site. Author: Aleksandr Ivanov #1448
  • Fixed compilation error for CustomImportOrder input file. Author: Aleksandr Ivanov #1470
  • ImportOrder enabled in configuration. Author: Aleksandr Ivanov #1448
  • Number of updates for. Author: Michal Kordas #1555
  • Fixed incorrect Google Java Style links. Author: Andrei Selkin #751.
  • Refactoring of RightCurlyCheck. Author: Andrei Selkin #1511.
  • Apply various improvements over Checkstyle test code. Author: Michal Kordas #1542
  • Apply various improvements over Checkstyle code. Author: Michal Kordas #1538
  • Remove unnecessary consecutive lines in Checkstyle code. Author: Michal Kordas #1534
  • Fix some SonarQube violations . Author: Michal Kordas #46
  • Enable NonEmptyAtclauseDescription check on Checkstyle code. Author: Michal Kordas #945
  • fix for UTs on Windows7 and do not conflict with WindowsServer. Author: Roman Ivanov #1496
  • Investigate UTs failure to MainTest on Windows. Author: Roman Ivanov #1510
  • fix for build problem in Idea on Windows . Author: Roman Ivanov
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.metrics. Author: Ruslan Diachenko #1287
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.regexp (partial fix). Author: Ilja Dubinin #1010
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.blocks. Author: Ilja Dubinin #1291
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.coding. Author: Baratli Izmailov #1293
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.modifier. Author: Ruslan Diachenko #1286
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.naming. Author: Ruslan Diachenko #1288
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.whitespace. Author: Ruslan Diachenko #1289
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle. Author: Roman Ivanov 1294
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.api. Author: Roman Ivanov 1295
  • Make coverage 100% for Indentation check. Author: Michal kordas 1295
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.javadoc. Author: Michal kordas 1308
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.filters. Author: Ruslan Diachenko #1296
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.imports. Author: Alexander Ivanov #1128
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks. Author: Ilja Dubinin #1290
  • Make coverage 100% for all classes at package com.puppycrawl.tools.checkstyle.checks.header. Author: Ilja Dubinin #1292
  • CheckDocsDoclet.java was removed as it is not used in a project. . Author: Roman Ivanov
  • Import which produces error on MacOSX jdk has been deleted . Author: Ilja Dubinin
  • javadoc: deperecate overview.html and package.html support. Author: Roman Ivanov #1415
  • Make "private" methods "static" where possible. Author: Michal Kordas #46
  • new images were provided by our artist, new header for web site . Author: Roman Ivanov
  • BaseCheckTestSupport.verify fails on Windows. Author: WonderCsabo #1388
  • check for connection is done by our website URL, as resource file is there. That let pass test when sourceforge web site is down . Author: Roman Ivanov
  • Switch options reoganized for easier reading. Author: Aleksandr Ivanov #1376
  • add example for ConstantName in xdoc. Author: Vladislav Lisetskiy #1106
  • commented code was removed from CheckerTest . Author: Roman Ivanov
  • fix eclipse package declaration error in InputPackageDeclaration . Author: Vladislav Lisetskiy
  • Add Gradle to list of related tools Correct SonarQube name and links in same list . Author: Thomas Jensen
  • fix structure of site.xml. Author: Vladislav Lisetskiy #1341
  • Move tests which cause compilation problem in Eclipse 4.2.2 to non-compilable folder. Author: Andrei Selkin #1351.
  • Fix integration test compilation error for Windows environment. Author: Michal Kordas #1342
  • Fix failing of ITs for OneStatementPerLineCheck. Author: Andrei Selkin #1348.
  • surefire and failsafe plugins are moved above checkstyle validation to run before long checkstyle execution . Author: Roman Ivanov
  • add IT to validate google_checks config. Author: Vladislav Lisetskiy #1275
  • rename fields in ConfigurationBuilder and BaseCheckTestSupport . Author: Vladislav Lisetskiy
  • update build procedure to validate all XML files against their schemas. Author: Vladislav Lisetskiy #1275
  • Fix compilation error for Windows environment. Author: Michal Kordas #1342
  • Remove usage of deprecated methods from MainTest. Author: Michal Kordas #1325
  • Restore checkstyle validation on nemo.sonarqube.org. Author: Roman Ivanov #1319
  • Update Maven Shade Plugin, EqualsVerifier, antlr, system-rules and Maven PMD Plugin to latest versions. Author: Michal Kordas
  • system-rules, ant were updated to latest version . Author: Roman Ivanov
  • Removed all assert statements. Author: Aleksandr Ivanov #1298
  • Fix AbstractClassName Check on checkstyle code. Author: Bhavik Patel #945
  • Make Eclipse / m2e plugins generate valid projects . Author: Juan Martín Sotuyo Dodero

New in Checkstyle 6.6 (Apr 27, 2015)

  • NEW:
  • New option for MagicNumber to ignore magic numbers in field declarations. Author: ychulovskyy #148
  • New option for ModifiedControlVariable Check to ignore validation of variables defined in for which are not change in for iterator part. Author: liscju #286
  • BUG FIXES:
  • Extend LeftCurly check to verify static initializers. Author: Michal Kordas #966
  • Extend EmptyBlock check to verify synchronized blocks. Author: Michal Kordas #964
  • Fix generics with arrays handling in NoWhitespaceAfter. Author: Michal Kordas #931
  • Fix upper/lower case conversation, enhance tests . Author: Mehmet Can Cömert #969
  • Introduce new handler SynchronizedHandler for checking identation. Author: liscju #580
  • added validation for header in setHeader in RegexpHeaderCheck.java to provide better feedback when an invalid Pattern is specified. Author: richter722 and Roman Ivanov #897
  • NOTES:
  • Delete System.exit() and delegate exit control into separate method. Author: Damian Szczepanik #882
  • Repair ignored test. Author: Michal Kordas #994
  • Fix AnnotationLocation violation in Checkstyle codebase. Author: Michal Kordas #945
  • Fix AvoidStaticImport check violations in codebase. Author: Michal Kordas #979
  • Fix AtclauseOrder check violations in codebase. Author: Michal Kordas #978
  • Resolve Javadoc problems found by Checkstyle. Author: Michal Kordas #978
  • Replace all occurrences of FastStack with ArrayDeque. Author: Michal Kordas #86
  • Fix PMD violations from numerous ruleset in Checkstyle. Author: Roman Ivanov #744
  • Fix PMD violations from numerous ruleset in Checkstyle. Author: Michal Kordas #987, #982, #872, #744, #942, #945, #744, #874, #873, #871, #869, #876, #875,
  • Update Apache Commons Lang to 3.4. Author: Michal Kordas #899
  • Use use Java 7 instead of custom logic for relative paths. Author: Michal Kordas #857
  • Add test for non existing cache file. Author: Michal Kordas #921
  • Use entrySet iterator to fix FindBugs violations. Author: Michal Kordas #778
  • Integrate Gitter with Checkstyle. Author: Michał Kordas #864
  • Resolve some problems in Javadoc reported by Java 8. Author: Michal Kordas #291
  • Disable Findbugs for 'grammars' package. Author: Michal Kordas #778
  • Update Maven Compiler Plugin to 3.3. Author: Michał Kordas #867
  • Update FindBugs Maven Plugin to 3.0.1. Author: Michał Kordas #865
  • Update Maven Javadoc Plugin to 2.10.3. Author: Michał Kordas #939
  • Use SVG badge for coveralls.io. Author: AnirvanSarkar
  • all TODO/FIXME were removed , some of them converted to issues . Author: Roman Ivanov
  • all findbugs validation rules are activated. Author: Roman Ivanov #912, #778

New in Checkstyle 6.5 (Apr 27, 2015)

  • BREAKING BACKWARD COMPATIBILITY:
  • Class checkstyle.api.Utils was moved to checkstyle.Utils. Author: Alex Kravin #661
  • NEW:
  • New sortStaticImportsAlphabetically property for ImportOrder check that allows alphabetical grouping order in static group. Author: Alex Kravin #12
  • New allowSingleLineStatement property for NeedBraces check to allow one-line statements. Author: Alex Kravin #300
  • New ignoreAnnotationCanonicalNames property for VisibilityModifier check, to ignore fields with particular annotations. Author: Alex Kravin #584
  • New validateEnhancedForLoopVariable property for FinalLocalVariable check to enforce final variables in for each clause. Author: Bhavik Patel #20
  • BUG FIXES:
  • CustomImportOrder checks import sorting according to ASCII order instead of case-insensitive alphabetical order. Author: Michal Kordas #847
  • Fix failing EmptyLineSeparator check on multiple imports or fields. Author: liscju #706
  • Fix ignoreSetter property of HiddenField not working for one letter fields. Author: Michal Kordas #730
  • Token WILDCARD_TYPE was added to WhitespaceAround check. Author: Danil Lopatin #853
  • SuppressionCommentFilter does not suppress StrictDuplicateCode warnings. Author: Yuriy Chulovskyy #26
  • AnnotationsUseStyle yields warning on "({})" of Array types. Author: Alex Kravin #28
  • Fix bug with lambda params in FinalLocalVariable check. Author: Alex Kravin #747
  • Final Local Variable Check, extended acceptable tokens. Author: Alex Kravin #762
  • Add support of logging severity for all audit events. Author: Alex Kravin #67
  • Fix typo in violation message of ModifierOrder check. Author: Michal Kordas #740
  • NOTES:
  • Add anchors to sections. Author: Alex Kravin #586
  • Extended guide for newbies. Author: Alex Kravin #606
  • Remove printStackTrace(...) from whole code. Author: Alex Kravin #660
  • Move content from available_checks.html to checks.html. Author: Alex Kravin #691
  • EmptyCatchBlock check, updated docs. Author: Alex Kravin #571
  • Add post field for mailing lists. Author: Glenn Hollingsworth #743
  • Automate Code Coverage Validation. Author: Bhavik Patel #722
  • Update all Maven plugins to latest versions. Author: Michal Kordas #644
  • Resolve all violations that were found by default PMD maven plugin rule sets. Author: Michal Kordas #744
  • Add maven-project-info-reports-plugin to POM. Author: Michal Kordas #776
  • Several fixes for problems found by Findbugs. Author: Michal Kordas #778
  • Add OverloadMethodsDeclarationOrder to Available Checks page. Author: Michal Kordas #784
  • Add test to verify that all checks are present on website. Author: Michal Kordas #783
  • Remove deprecated getLines() methods from Utils. Author: Michal Kordas #854
  • Deprecate FastStack and replace it with ArrayDeque. Author: Michal Kordas #86
  • Huge amount of refactoring and improvements, some of them without issue reference. Author: Michal Kordas #674 , #729 , #730 , #736 , #742 , #751 , #787 , #790 , #805 , #806 , #809 , #816 , #821 , #821
  • Use Guava Closeables to manage closing exceptions. Author: Michal Kordas #836
  • Remove duplicate UniqueProperties section. Author: Michele Mauro #843
  • Add Utils.isPatternValid method to hide try-catch blocks when parsing is used only for validation. Author: Damian Szczepanik #835
  • Reduce complexity in HandlerFactory class by grouping catch blocks. Author: Damian Szczepanik #833
  • Delete ///CLOVER comments. Author: Damian Szczepanik #824
  • Update all links to sun.com reference to oracle site. Author: Damian Szczepanik #724

New in Checkstyle 6.4.1 (Mar 4, 2015)

  • Bug fixes:
  • Visibility Modifier Check, updated option setter. Author: Alex Kravin #710
  • Generic Whitespace Check, updated method references processing. Author: Alex Kravin #677
  • Notes:
  • Hidden Field Check, updated docs for 'ignoreFormat' option. Author: Alex Kravin #607
  • Clarified all Indentation Input files for certain expected values. Author: Alexey Zuy #675
  • Update of maven plugins. Author: Michal Kordas #644
  • Fix incorrect author anf typos in release notes for issue. Author: Michal Kordas #606

New in Checkstyle 6.4 (Mar 2, 2015)

  • New:
  • New Check: Empty Catch Block Check for Google Style Guide. Author: Alex Kravin#571
  • New option for Visibility Modifier Check, to allow public immutable fields. Author: Alex Kravin#61
  • Bug fixes:
  • Added support of Windows line separator to Javadoc parser. Fixed UTs. Author: Baratali Izmailov #612
  • Fix NPE when setting classpath field. Author: Aaron Sheldon
  • Illegal Type Check, updated memberModifiers option setting. Author: Alex Kravin #663
  • Boolean Expression Complexity Check, fixed NPE. Author: Alex Kravin #654
  • Final Local Variable Check, fixed false-positive. Author: Alex Kravin #258
  • Abstract Class Name Check, updated default regex. Author: Alex Kravin #595
  • Empty Line Separator Check, fixed Exception if file doesn't have header. Author: Alex Kravin #621
  • BooleanExpressionComplexity misidentifies integer expression as boolean expression. Author: ychulovskyy #572
  • Breaking backward compatibility:
  • Fixed typo in 'ignoreOverriden' property of IllegalThrowsCheck. Author: Alex Kravin #623
  • Annotation Location Check, extended typo fixing. Author: Alex Kravin #585
  • Notes:
  • Javadoc comments for JAVADOC_TAG and JAVADOC_INLINE_TAG related nodes. Author: Baratali Izmailov #409
  • Linkcheck report, fixed errors. Author: Alex Kravin #549
  • Refactored UTs. Author: Alex Kravin #537
  • Site: feeds icons were added. Author: Alex Kravin #617
  • TreeWalker update, added logging warning if AcceptableTokens are broken. Acceptable tokens are specified for all checks. Author: Alex Kravin #342
  • Suppression Comment Filter, extended docs for messageFormat option. Author: Alex Kravin #123
  • Site: moved 'Extending Checkstyle' to Developers groups. Author: Alex Kravin #606
  • Update some maven plugin in pom.xml. Author: Michal Kordas #644
  • Reformat and fix example for AnnotationUseStyle. Author: Michal Kordas #672
  • Require at least Maven 3.0.1 to build Checkstyle. Author: Michal Kordas #620
  • Site: moved 'Extending Checkstyle' to Developers groups, issue #606. Author: Michal Kordas #620
  • Replace `StringBuffer` with `StringBuilder` to improve performance. Author: Michal Kordas
  • Repair typos in UniqueProperties description. Author: Michal Kordas
  • Replace verbose type arguments with diamond type. Author: Michal Kordas
  • Fix for typos in documentation. Author: Michal Kordas
  • Use Collections.addAll() instead of adding elements individually. Author: Michal Kordas
  • Added missed @Test annotation on test-case 'IndentationCheckTest.testMethodCallLineWrap'. Author: Alexey Zuy
  • IndentationCheck. Refactoring: got rid of anonymous classes. Author: Alexey Zuy
  • Fix table display. In config_whitespace, a comma was incorrectly replaced with a period. Author: Glenn Hollingsworth
  • Update config links in Google Style html page. Author: Glenn Hollingsworth #686

New in Checkstyle 6.3 (Feb 3, 2015)

  • New:
  • New option to HiddenField, to skip builder methods - setterCanReturnItsClass. Author: Dmitri Priimak #589
  • New option to Checker and TreeWalker to specify file extensions. Author: Alex Kravin #25
  • New option to Empty Line Separator Check, for managing empty lines between class members. Author: Alex Kravin #530
  • New option to Indentation to avoid C style. Author: Max Vetrenko #354
  • New option to Illegal Throws Check due to twitter custom checks. Author: Alex Kravin #430
  • New option to Javadoc Method Name Check - ignore method name regex. Author: Alex Kravin #430
  • New option to Illegal Type Check to control valiadtion baseon modifiers - memberModifiers, updated default illegal types. Author: Alex Kravin #567
  • Bug fixes:
  • Extended Method Name Check to ignore overriden methods. Author: Alex Kravin #430
  • Allow basedir property of Checker module to be set to NULL. Author: Lars Ködderitzsch #570
  • Custom Import Order Check, third-party package meaning is adjusted. Author: Alexey Kravin #515
  • Final Local Variable Check, fixed false-positive. Author: Alexey Kravin #258
  • Illegal Type Check, fixed false positives on same file names, added support of analyzing imports. Author: Alexey Kravin #78
  • Suppress Warnings Holder - fixed throwing exception if annotation uses constant value. Author: Alexey Kravin #539
  • No Whitespace After Check, fixed NPE, fixed false-positives at multidimensional arrays. Author: Alexey Kravin #542
  • message is extended according to google/guava/issues/1891. Author: Roman Ivanov
  • Breaking backward compatibility:
  • Annotation Location Check, fixed typo in property name. Author: Alex Kravin #585
  • Notes:
  • Code examples of filters' usage. Author: Alex Kravin #289
  • Changes to checkstyle's configuration for Checkstyle (Prefixes are removed, indentation for SWITCH block is changed). Author: Alex Kravin #512
  • Custom Import Order Check, rewrote compare method. Author: Alex Kravin #234
  • Switched Checkstyle and all resources to UTF-8 encoding. Author: Alex Kravin #489
  • Logging of exceptions to console. Author: Alex Kravin #546
  • Got rid of javadoc warning. Resolved maven compilation warnings. Author: Alex Kravin #548
  • Refactored tests from blocks package. Author: ychulovskyy #537
  • Turn on -r recursive by default in CLI. Author: ychulovskyy #3
  • Fixes for suppression examples. Author: Michał Kordas #289
  • Repair Sonarqube problems found in Checkstyle. Author: Michał Kordas #46

New in Checkstyle 6.2 (Dec 30, 2014)

  • Serious compatibility problems with versions 5.9, 6.0 and 6.1 .
  • Added basenameSeparator configuration option for TranslationCheck
  • Added google and sun configs to jar.
  • Added UT for lambda expressions for InnerAssignmentCheck.
  • Build and install the tests jar artifact.
  • Final Local Variable Check, fixed false-positive - native method's param should be declared final.
  • Final Parameters Check, added option allows ignoring primitive types as params.
  • Unsatisfiable Indentation module scenario with difficult annotations.
  • Fixed false-positive in GenericWhitespaceCheck.
  • Fix InnerAssignment check for lambda expressions.
  • Generic Whitespace Check, fixed bug - '>' is followed by an illegal character.
  • InnerTypeLast within methods.
  • AnnotationUseStyle closingParens check failed.
  • RequireThis triggers when try-with-resources defines resource with same name as method.
  • NullPointerException with SuppressWarningsHolder and enum fields.
  • ParameterNumber check option to ignore methods with an @Override.
  • MutableException check requires class to explicitly extend some other class.
  • Need Braces, added option which allows one line if-statements without braces.
  • Redundant Modifier Check fixed bug with warning on final variables in default methods.
  • Redundant Modifier Check, fixed false-positive Redundant modifier final error for @SafeVarargs method.
  • Summary Javadoc Check, added 'specify period' option.
  • Suppress Warnings Check, annotation param in constant.

New in Checkstyle 6.1.1 (Nov 28, 2014)

  • Bug fixes:
  • Generics in postfix expression before method referencec can be parsed now. Author: Ilja Dubinin #339
  • ArrayIndexOutOfBoundsException if Indentation and FileContentsFolder are enabled. Author: Ilja Dubinin. #92
  • Create ParseErrorMessage if error message is null during Javadoc parsing. Author: Baratali Izmailov. #385
  • Added $ to all identifier definitions at javadoc grammar. Author: Baratali Izmailov. #376
  • Fixed NumberFormatException while logging in AbstractJavadocCheck. Author: Baratali Izmailov. #371
  • Indentation check fails for switch statements. Author: Max Vetrenko. #341
  • -v CLI flag for querying the installed Checkstyle version. Author: ychulovskyy. #9

New in Checkstyle 6.1 (Nov 14, 2014)

  • CHANGES:
  • Huge performance optimization for JavaDoc parsing. In scope of issue #49. Caching DetailNode trees in AbstractJavadocCheck .
  • "FileContents.getLines()" performance fix.
  • Fix for MultiMap empty collections garbage.
  • Preformance fix for RegexpCheck.
  • Removing unnecessary char[] copying to reduce GC-pressure.
  • Using BitSet for indent levels for performance.
  • Various documentation/spelling issues with AnnotationLocationCheck.
  • Multidimensional arrays can be parsed now.
  • Breaking backward compatibility:
  • AnnotationLocationCheck, package location was chaged, one option was renamed.

New in Checkstyle 6.0 (Oct 25, 2014)

  • New features that extend API:
  • Support of single-line and block comments in parse tree. ANTLR4 grammar for parsing Javadoc comments. Author: Baratali Izmailov. #49
  • New features:
  • AnnotationLocationCheck. Author: Max Vetrenko. #302
  • AtclauseOrderCheck. Author: Max Vetrenko. #306
  • JavadocParagraph. Author: Max Vetrenko. #315
  • JavadocTagContinuationIndentation. Author: Max Vetrenko. #308
  • SingleLineJavadocCheck. Author: Max Vetrenko. #332
  • NonEmptyAtclauseDescriptionCheck. Author: Max Vetrenko. #309
  • Update for existing JavadocMethodCheck to satisfy Google's style requirements. Author: Max Vetrenko. #319
  • Notes:
  • Google style is now covered to maxumum of Checkstyle ability. See detailed report here. Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
  • All binaries are now compiled by Jdk6. Jdk5 is not supported any more.

New in Checkstyle 5.8 (Oct 16, 2014)

  • NEW FEATURES:
  • Google Java Style xml configuration was added. Author: Max Vetrenko.
  • New: AbbreviationAsWordInName check. Author: Max Vetrenko. #212
  • Added enum processing to TypeNameCheck . Author: Pavel Baranchikov
  • Added method to clear cache to LocalizedMessage. Author: Joni Salmi. #156
  • New: AvoidEscapedUnicodeCharacters check. Author: Max Vetrenko. #194
  • New: CustomImportOrder check. Author: Max Vetrenko. #194
  • New: EmptyLineSeparator check. Author: Max Vetrenko. #186
  • Enable array initialisation indentation settings. Author: Vaclav Chalupa.
  • Enhance WhitespaceAroundCheck to ignore Annotation Array Initialization curlies as it does for Array Initialization outside of annotations. . Author: Jacob Tomaw
  • ignore option to the JavadocVariable check. Author: ychulovskyy. #98
  • New: InterfaceTypeParameterName check. Author: Max Vetrenko. #202
  • New grammar rule was added only for catch types. IllegalCatchCheck has been extended to use catch with few exception types. . Author: Ilja Dubinin #165
  • LocalVariableName. Allowed one char variables in initialization expressions in FOR loop . Author: Max Vetrenko #192
  • New: NoLineWrap check. Author: Max Vetrenko. #173
  • New: OneTopLevelClass check. Author: Max Vetrenko. #173
  • New: OverrideMethodsDeclarationOrder check. Author: Max Vetrenko. #32
  • New option to allow no empty line between fields at EmptyLineSeparatorCheck check. Author: Max Vetrenko. #227
  • New option to allow that force overload methods are grouped together at DeclarationOrder check. Author: Max Vetrenko. #163
  • New option to allow empty classes, enums and interfaces, empty loops are allowed at WhitespaceAround check. Author: Max Vetrenko. #163
  • New: VariableDeclarationUsageDistance check. Author: Max Vetrenko. #223
  • BUG FIXES:
  • Update for EmptyBlock to allow empty loops. Author: Max Vetrenko. #190
  • EmptyLineSeparatorCheck was updated to validate empty line after header. Author: Max Vetrenko. #218
  • LeftCurly Check was updated to force line break. Author: Max Vetrenko. #247
  • update for OuterTypeFilename Check to check top level type are the public type or the first type in file if public is missed. Author: Max Vetrenko. #248
  • update for RightCurly Check, new option to check line break after the closing brace if that brace terminates a statement or the body of a method, constructor or named class. Author: Max Vetrenko. #182
  • Added test and fix for the case if there is a semicolon between import statements. Author: Ryszard Wisniewski
  • Adding ANNOTATION_DEF to the valid list of parentASTs for the SuppressWarningsHolder. Without this, any @SuppressWarnings (checkstyle or not) present on an annotation definition class will fail. Author: Dominic Jones
  • Adding u HTML tag to list of allowed tags in JavaDoc. Author: Ilja Gubins. #58
  • update for WhitespaceAround. Allowed empty anonymous classes. Was updated allowEmptyTypes property. Author: Max Vetrenko. #197
  • Fixed AbstractTypeAwareCheck for generics in interfaces. Author: Tobias Baum. #177
  • Fixed RightCurlyCheck for empty methods. Author: Max Vetrenko. #213
  • Fixed WhitespaceAroundCheck. fix for anonymous inner class. Author: ychulovskyy. #105
  • Fixed RedundantModifier. Abstract Interface Should not be Allowed. Author: ychulovskyy. #209
  • Fixed EmptyBlock. need to handle switch block. Author: Max Vetrenko. #235
  • Fixed WhitespaceAround. Fix false positive with ANNOTATION_DEF. Author: Max Vetrenko. #237
  • Fixed GenericWhitespace. Fix false positive with Array. Author: Inav Sopov. #47
  • Fixed JavadocStyleCheck. HTML comments break the Javadoc style HTML check. Author: theqaguy. #119
  • Fixed Java grammar. Now it can parse 'return (byte[].class);' Author: Ilja Dubinin. #130
  • Exception thrown when parsing numeric constant "3.14_15F". Author: ychulovskyy#134
  • RequireThis triggers for static interface fields Fixed. Author: Sergiu Dumitriu #155
  • Javadoc in GenericWhitespaceCheck was updated. Author: Max Vetrenko #254
  • MemberNameCheck should not validate interface constants, that's ConstantNameCheck's role . Author: Sergiu Dumitriu
  • RightCurly. Force line break before '}' in case SAME option. Author: Max Vetrenko #250
  • SeparatorWrapCheck. Covers separators like ',', '.' . Author: Max Vetrenko #179
  • Support annotations in TypeNameCheck. Author: Thomas Jensen
  • Update UnusedImportsCheck to correctly detect classes in parameters and inline tags nested within block tags. fixing checkstyle issues Fixing even more checkstyle issues . Author: James Gorman
  • Use a thread-safe map implementation to keep the compiled patterns. Author: Christoph Kutzinski
  • WhitespaceAround with allowEmptyMethods complains on annotation's empty method Author: Max Vetrenko #21

New in Checkstyle 5.6 (Sep 19, 2012)

  • New features:
  • SuppressionFilter now supports loading a configuration from a URL reference. Thanks to Stephen for patch #3485185.
  • Bug fixes:
  • Fixed bug in the grammer for an edge case (bug #1667137). Thanks to Lukas Platinsky for patch #3393810.
  • DeclarationOrder handles ignoreModifiers correctly (all fields should be before ctors and methods)(bug #3429775)
  • Inner assignment is now allowed in try-with-resources (bug #3441097)
  • Fixed bug in the grammer when builtin types are used in a generic declaration (bug #3553541).
  • Notes:
  • Removed the DoubleCheckedLocking check, as in Java 5 (and beyond), using the volatile keyword addresses the issue. See here for more details.
  • Added Turkish message translations. Thanks to poyrazus for patch #3460908.

New in Checkstyle 5.5 (Nov 15, 2011)

  • New features:
  • Added Java 7 support to the grammar. Thanks to Dinesh Bolkensteyn for patch #3403265.
  • Bug fixes:
  • Fix parsing error unexpected char: 0xFFFF which was triggered when a comment line is on a line with out newline character. Thanks to Evgeny Mandrikov for patch #3367782.
  • Fixed UnusedImports to consider @linkplain, @throws and @exception tags when the option processJavadoc is turned on.
  • RequireThis now ignores static members (bug #1155921).
  • HiddenField now treats setxYz() as a setter for xYz, and setXYz() as a setter for XYz property to comply JavaBeans specification (bug #3370946).
  • Fixed parsing errors for Unicode escape sequences. Thanks to Dinesh Bolkensteyn for patch #3412812.
  • gnoreEnhancedForColon property added to WhitespaceAround. Thanks to Travis Schneeberger for patch #1921815 (bug #1649038).

New in Checkstyle 5.4 (Jul 14, 2011)

  • New features:
  • Enhanced UnusedImports to have the option processJavadoc to detect whether imports are used. Thanks to Lyle Hanson for patch #3267984.
  • Enhanced MagicNumber to support ignoring numbers in annotation declarations. Thanks to Julio Cesar Cabral for patch #3132984.
  • Enhanced EqualsAvoidNull to process String.equalsIgnoreCase() invocations (which can be suppressed).
  • Enhanced IllegalThrows to support ignoring methods with specified names. Thanks to Amit Shah for patch #3115439.
  • Enhanced RedundantModifier to support detecting inner interface declarations that are declared as static. Raised in bug #3222810.
  • Enhanced the ANT task, Command Line and Suppression Filter to be able to load their configuration file from either the filesystem or the classpath as a resource. Thanks to Tracy Snell for patch #3307526.
  • Bug fixes:
  • Fix MultipleVariableDeclarations to properly handle when multiple variable declarations are inside a for loop initializer. Thanks to Amit Shah for patch #3121071.
  • Fix memory leak in FileContentsHolder. Thanks to Evgeny Mandrikov for patch #3323517.

New in Checkstyle 5.3 (Oct 19, 2010)

  • New features:
  • Added OuterTypeFilename that checks that the outer type name and the file name match. For example, the class Foo must be in a file named Foo.java.
  • Enhanced PackageDeclaration to optionally check that the package name matches the name of the directory containing the file.
  • Added NestedForDepth that restricts nested for blocks to a specified depth (default = 1). Thanks to Alexander Jesse for patch #1151673.
  • Added MethodCount that checks the number of methods declared in each type. This includes the number of each scope (private, package, protected and public) as well as an overall total. Thanks to Alexander Jesse for patch #1151669, which was the inspiration.
  • Added OneStatementPerLine that checks there is only one statement per line. Thanks to Alexander Jesse for patch #1144994, which was the inspiration.
  • Enhanced MagicNumber to support the parameter ignoreHashCodeMethod to ignore magic numbers in hashCode() methods. Thanks to Daniel Solano Gómez for patch #3050788.
  • Enhanced AbstractClassName to support checking that matching classes have the abstract modifier. Thanks to Danil Lopatin for patch #3043752.
  • Enhanced the property types stringSet and intSet to support being supplied multiple times to construct the equivalent of a comma separated list.
  • Enhanced AvoidStarImport to support the properties allowClassImports and allowStaticMemberImports for finer control over what is allowed. Thanks to Travis Schneeberger for patch #1939775.
  • Bug fixes:
  • Fix JavadocMethod checking of @throws tags for methods that throw multiple non-runtime exceptions. Thanks to Daan Kets for patch #3039869.
  • Fix HideUtilityClassConstructor to handle empty and inner classes. Thanks to Roman Ivanov for patch #3045720.
  • Notes:
  • Changed the default value of the property logLoadErrors to be true for the checks RedundantThrows and JavadocMethod to ensure consistent behaviour.

New in Checkstyle 5.2 (Sep 25, 2010)

  • New features:
  • Enhanced DeclarationOrder to support properties to ignore constructors, methods and modifiers. Thanks to Steve McKay for patch #2953941.
  • Enhanced WriteTag to support empty tags, and constructor declarations. Thanks to Rolf Wojtech for patch #2724894.
  • Added InnerTypeLast to check nested (internal) classes/interfaces are declared at the bottom of the class after all method and field declarations. Thanks to Ruslan Dyachenko for patch #3027391.
  • Enhanced ImportOrder to support using regular expressions for defining groups. Thanks to Martin von Gagern for patch #2782118.
  • Bug fixes:
  • Fixed ImportOrder to have the sort behaviour as in release 5.0. (bug #2952881). Thanks to Steve McKay for patch #2953936.
  • Fixed JavadocStyle not handling package declarations that have annotations. (bug #2911363)
  • Notes:
  • Converted the build system to Maven. The directory structure has been maintained for now, rather than adopting Maven's standard directory layout . This will change once Maven has been proven.
  • The Maven changed to be com.puppycrawl.tools (from checkstyle).
  • Introduced FileText to provide more flexibitily on how the contents of a file are represented. This allows for Checkers that wish to operate on a single character sequence instead of a list of lines. Thanks to Martin von Gagern for patch #2783226.
  • Updated third party dependencies to the latest versions. See Project Dependencies for details.
  • Made the method EmptyBlockCheck.hasText(DetailAST) protected so that it is accessible to subclasses. Requested by Steve McKay.

New in Checkstyle 5.1 (Feb 24, 2010)

  • New features:
  • Enhanced ImportOrder check to support wildcard ('*') groups. Thanks to Steve McKay for patch #2891032.
  • Enhanced the naming checks ConstantName, MemberName, MethodName and StaticVariableName to utilise the access control tuning features of AbstractAccessControlNameCheck. Thanks to Steve McKay for patch #2893581.
  • Improve ConfigurationLoader to use a InputSource. Thanks to Martin von Gagern for patch #2782627.
  • Enhanced the ImportControl check to support regular expressions. Thanks to lbaeumer for patch #2937442.
  • Bug fixes:
  • Corrected build errors on javadoc generation. Thanks to Martin von Gagern for providing a patch (patch #2782630).
  • Corrected javadoc in TokenTypes class for UNARY_PLUS and UNARY_MINUS members (bug #2745145).
  • Corrected broken link in WhiteSpaceAround documentation (bug #2745287).
  • Corrected pad policy documentation for MethodParamPad (bug #2775402).
  • Added correct license information for referenced source files (bug #2778850).
  • Updated documentation for writing checks (bug #2783451).
  • Report unused Javadoc tags with no trailing whitespace(bug #2506962). Thanks to shlesha Patil for patch #2781021.
  • Enhanced JavadocType check to handle and report on unknown Javadoc tags. The property allowUnknownTags can be set to ignore errors. (bug #2882261)

New in Checkstyle 5.0 (Oct 21, 2009)

  • Header
  • RegexpHeader
  • FileLength

New in Checkstyle 5.0 Beta 2 (Mar 24, 2009)

  • New Features:
  • Added the option charset to the header checks to allow controlling the encoding of the header file (rfe 1952641).
  • New check OuterTypeNumber for enforcing the maximum number of outer types per file. Inspired by patch #1145023 from Alexander Jesse.
  • Added the option sumTokenCounts to the DescendantToken to allow for even more powerful checks. For example, detect statements like this == null.
  • Add new options to the ImportOrderCheck to make it more flexible. Thanks to David Didier for providing patch #1854213.
  • New check FileTabCharacter for ensuring that any files does not contain a tab character. It replaces TabCharacterCheck which was restricted to Java files.
  • Changed FileLength check to be a FileSetCheck.
  • Changed RegexpHeader and Header to be a FileSetCheck. Removed CrossLanguageRegexpHeader as a result.
  • Enhanced JavadocStyle to check for allowed HTML tags. Thanks to Nicolas Dordet for providing patch #2214251.
  • Enhanced JavadocMethod to be more restrictive on where {@inheritDoc} can be used. Also enhanced JavadocPackage to ensure a package-info.java file contains a comment. Thanks to Travis Schneeberger for providing patch #2294029.
  • Added the SuppressWithNearbyCommentFilter filter that uses nearby comments to suppress audit events. Thanks to Mick Killianey for providing patch #2354424.
  • Added the new checks RegexpMultiline RegexpSingleline RegexpSinglelineJava.
  • Fixed Bugs:
  • The NCSS complexity checker reported an incorrect fileMax value (bug #2161419).
  • Checkstyle command-line no longer reports a usage error if the user specifies a directory with the -r option that does not contain any files. Thanks to Florian for patch #2151706.
  • Fixed the LeftCurly check to ignore leading annotations. Thanks to Tim Carpenter for patch #2506439.