👍 I have read check documentation: https://checkstyle.org/checks/xxxxxx/nameofaffectedcheck.html
👍 I have downloaded the latest checkstyle from: https://checkstyle.org/cmdline.html#Download_and_Run
👍 I have executed the cli and showed it below, as cli describes the problem better than 1,000 words
Flexible constructor bodies (JEP 513) is targeted for JDK 25. That means it is leaving preview and will become standard Java with the release of JDK 25 this fall.
Therefore, checkstyle will need to support the new syntax. It doesn't yet:
$ javac -version
javac 25-internal
$ javac MyClass.java
# my config is google_checks.xml but it doesn't matter
$ cat MyClass.java
public class MyClass {
public MyClass() {
System.out.println("hello");
super();
}
}
$ RUN_LOCALE="-Duser.language=en -Duser.country=US"
$ java $RUN_LOCALE -jar checkstyle-10.23.1-all.jar -c google_checks.xml MyClass.java
Starting audit...
com.puppycrawl.tools.checkstyle.api.CheckstyleException: Exception was thrown while processing MyClass.java
at com.puppycrawl.tools.checkstyle.Checker.processFiles(Checker.java:312)
at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:226)
at com.puppycrawl.tools.checkstyle.Main.runCheckstyle(Main.java:424)
at com.puppycrawl.tools.checkstyle.Main.runCli(Main.java:347)
at com.puppycrawl.tools.checkstyle.Main.execute(Main.java:206)
at com.puppycrawl.tools.checkstyle.Main.main(Main.java:130)
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: IllegalStateException occurred while parsing file /Users/archie/Downloads/checkstyle-bug/MyClass.java.
at com.puppycrawl.tools.checkstyle.JavaParser.parse(JavaParser.java:104)
at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered(TreeWalker.java:195)
at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process(AbstractFileSetCheck.java:101)
at com.puppycrawl.tools.checkstyle.Checker.processFile(Checker.java:340)
at com.puppycrawl.tools.checkstyle.Checker.processFiles(Checker.java:299)
... 5 more
Caused by: java.lang.IllegalStateException: 3:26: mismatched input '(' expecting ';'
at com.puppycrawl.tools.checkstyle.JavaParser$CheckstyleErrorListener.syntaxError(JavaParser.java:254)
at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)
at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:544)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)
at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)
at com.puppycrawl.tools.checkstyle.CheckstyleParserErrorStrategy.recoverInline(CheckstyleParserErrorStrategy.java:38)
at org.antlr.v4.runtime.Parser.match(Parser.java:208)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.statement(JavaLanguageParser.java:7046)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.blockStatement(JavaLanguageParser.java:6207)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.constructorBlock(JavaLanguageParser.java:5920)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.constructorDeclaration(JavaLanguageParser.java:3074)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.memberDeclaration(JavaLanguageParser.java:2764)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.classBodyDeclaration(JavaLanguageParser.java:2676)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.classBody(JavaLanguageParser.java:2482)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.classDeclaration(JavaLanguageParser.java:1101)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.types(JavaLanguageParser.java:758)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.typeDeclaration(JavaLanguageParser.java:672)
at com.puppycrawl.tools.checkstyle.grammar.java.JavaLanguageParser.compilationUnit(JavaLanguageParser.java:419)
at com.puppycrawl.tools.checkstyle.JavaParser.parse(JavaParser.java:98)
... 9 more
Caused by: org.antlr.v4.runtime.InputMismatchException
... 23 more
Checkstyle ends with 1 errors.
Expecting no crash.
👍 I have read check documentation: https://checkstyle.org/checks/xxxxxx/nameofaffectedcheck.html
👍 I have downloaded the latest checkstyle from: https://checkstyle.org/cmdline.html#Download_and_Run
👍 I have executed the cli and showed it below, as cli describes the problem better than 1,000 words
Flexible constructor bodies (JEP 513) is targeted for JDK 25. That means it is leaving preview and will become standard Java with the release of JDK 25 this fall.
Therefore, checkstyle will need to support the new syntax. It doesn't yet:
Expecting no crash.