-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
Milestone
Description
Hi, this is essentially a duplicate of #17163 I just tried to make it as minimal as possible.
/var/tmp$ export JAVA_HOME=/home/roman/java/jdk/jdk-21.0.2
/var/tmp$ export PATH=$JAVA_HOME/bin:$PATH
/var/tmp$ javac Test.java
/var/tmp $ cat config.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<property name="skipFileOnJavaParseException" value="true"/>
<property name="javaParseExceptionSeverity" value="info"/>
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="2"/>
<property name="lineWrappingIndentation" value="2"/>
<property name="arrayInitIndent" value="2"/>
</module>
</module>
<property name="fileExtensions" value="java, properties, xml"/>
<property name="charset" value="UTF-8"/>
<property name="severity" value="warning"/>
</module>
/var/tmp $ cat Test.java
package de.playo;
import java.lang.reflect.Proxy;
public class Test {
public static void main(String[] args0) {
var serviceAFakeInstance = (String) Proxy.newProxyInstance(
null,
new Class[]{String.class},
(proxy, method, args) -> switch (method.getName()) {
case "hashCode" -> 123456789;
case "equals" -> args[0] == proxy;
case "toString" -> "FakeInstanceServiceA";
default -> throw new IllegalArgumentException(method.getName());
});
System.out.println(serviceAFakeInstance);
}
}
$ java -jar checkstyle-10.25.0-all.jar -c config.xml Test.java
Starting audit...
[WARN] /var/tmp/Test.java:12:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:13:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:14:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:15:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:16:7: 'switch rcurly' has incorrect indentation level 6, expected level should be 8. [Indentation]
Audit done.
Describe what you expect in detail.
The indentation looks fine to me and adding two more levels does not look right. This config worked before 10.24.X
/var/tmp$ java -jar checkstyle-10.23.1-all.jar -c config.xml Test.java
Starting audit...
Audit done.
/var/tmp$ java -jar checkstyle-10.24.0-all.jar -c config.xml Test.java
Starting audit...
[WARN] /var/tmp/Test.java:12:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:13:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:14:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:15:9: 'case' child has incorrect indentation level 8, expected level should be 10. [Indentation]
[WARN] /var/tmp/Test.java:16:7: 'switch rcurly' has incorrect indentation level 6, expected level should be 8. [Indentation]
Audit done.
Opensource project that uses latest versions and run into same problem
https://github.com/trinodb/trino/blob/2718456e96a386d7e0ea0b6d620918061edfcda0/.github/DEVELOPMENT.md?plain=1#L32
can be reused in CI for verification of fix.