diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/RedundantModifierCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/RedundantModifierCheck.java index 46c5d3778..87f20f65c 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/RedundantModifierCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/RedundantModifierCheck.java @@ -228,7 +228,8 @@ public class RedundantModifierCheck && ast.getType() != TokenTypes.METHOD_DEF || type == TokenTypes.ABSTRACT && ast.getType() != TokenTypes.CLASS_DEF - || type == TokenTypes.FINAL) { + || type == TokenTypes.FINAL + && ast.getType() != TokenTypes.CLASS_DEF) { log(modifier.getLineNo(), modifier.getColumnNo(), MSG_KEY, modifier.getText()); break; diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputNestedClassInPublicInterfaceRedundantModifiers.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputNestedClassInPublicInterfaceRedundantModifiers.java index 2a9d706e1..ef1954b25 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/InputNestedClassInPublicInterfaceRedundantModifiers.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputNestedClassInPublicInterfaceRedundantModifiers.java @@ -42,4 +42,9 @@ public interface InputNestedClassInPublicInterfaceRedundantModifiers { } } } + final class FinalNestedClassInInterface { + interface InnerInterface { + final class FinalNestedClassInNestedInterface {} + } + } }