Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.
pbludov on issue-9149-stack-overflow2
Issue #9149: removed input caus… (compare)
pbludov on issue-9149-stack-overflow2
minor: fix sonar violation 'Ref… doc: releasenotes 8.39 [maven-release-plugin] prepare … and 4 more (compare)
pbludov on issue-9149-stack-overflow2
pbludov on issue-9149-stack-overflow2
Issue #9149: workaround for sta… (compare)
pbludov on issue-9149-stack-overflow2
Issue #9149: workaround for sta… (compare)
pbludov on issue-9149-stack-overflow2
minor: fix sonar violation 'Ref… doc: releasenotes 8.39 [maven-release-plugin] prepare … and 4 more (compare)
pbludov on master
Issue #5951: Incorrect warning … minor: update wercker.sh to use… dependency: bump org.eclipse.jg… and 18 more (compare)
pbludov on issue-8864-cmd-set
pbludov on issue-9021-fix-josm
pbludov on issue-9021-fix-josm
Issue #9021: fix josm validation (compare)
pbludov on issue-9021-fix-josm
pbludov on issue-8951-remove-buddy
pbludov on issue-6722-missing-asterisk
pbludov on issue-9124-stack-overflow-parenpad
pbludov on issue-8018-operator-wrap
pbludov on issue-9101-fix-stack-overflow
pbludov on issue-4219-shadowed-imports
Issue #4219: UnusedImports does… (compare)
github-actions[bot] on issue-4219-shadowed-imports
Issue #8651: Checkstyle fails o… Issue #4219: UnusedImports does… (compare)
pbludov on issue-8018-operator-wrap
Issue #8018: AST based operator… (compare)
pbludov on issue-9101-fix-stack-overflow
minor: resolve sonar violation … minor: fix link to redirected t… Pull #9129: suppress sonar viol… and 8 more (compare)
Hi everyone, I would like to know if there is a check in Checkstyle which verifies the correctness of placeholders in String.format
or any similar formatting method?
Here are 3 examples:
jshell> String.format("Hello, %s", "Checkstyle");
$1 ==> "Hello, Checkstyle"
jshell> String.format("Hello, %s", "check", "style");
$1 ==> "Hello, check"
jshell> String.format("Hello, %s");
| Exception java.util.MissingFormatArgumentException: Format specifier 'Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%s'
at java.base/java.util.Formatter.format(Formatter.java:2672)
at java.base/java.io.PrintStream.format(PrintStream.java:1053)
at java.base/java.io.PrintStream.printf(PrintStream.java:949)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.error(JShellTool.java:728)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.errormsg(JShellTool.java:867)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.displayEvalException(JShellTool.java:3451)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.displayException(JShellTool.java:3425)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.displayException(JShellTool.java:3418)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.handleEvent(JShellTool.java:3582)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processSource(JShellTool.java:3550)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processSourceCatchingReset(JShellTool.java:1301)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.processInput(JShellTool.java:1203)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.run(JShellTool.java:1176)
at jdk.jshell/jdk.internal.jshell.tool.JShellTool.start(JShellTool.java:975)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolBuilder.start(JShellToolBuilder.java:254)
at jdk.jshell/jdk.internal.jshell.tool.JShellToolProvider.main(JShellToolProvider.java:120)
Please review this checkstyle/checkstyle#7562
@romani
https://checkstyle.sourceforge.io/beginning_development.html