diff --git a/src/it/java/com/google/checkstyle/test/chapter4formatting/rule487modifiers/ModifierOrderTest.java b/src/it/java/com/google/checkstyle/test/chapter4formatting/rule487modifiers/ModifierOrderTest.java
index d052f0285..3376988c2 100644
--- a/src/it/java/com/google/checkstyle/test/chapter4formatting/rule487modifiers/ModifierOrderTest.java
+++ b/src/it/java/com/google/checkstyle/test/chapter4formatting/rule487modifiers/ModifierOrderTest.java
@@ -97,6 +97,7 @@ public class ModifierOrderTest extends BaseCheckTestSupport {
"215:28: " + getCheckMessage(clazz, msgMod, "synchronized"),
"217:37: " + getCheckMessage(clazz, msgMod, "protected"),
"219:22: " + getCheckMessage(clazz, msgAnnotation, "@MyAnnotation2"),
+ "245:14: " + getCheckMessage(clazz, msgMod, "default"),
};
final Configuration checkConfig = getCheckConfig("ModifierOrder");
diff --git a/src/it/resources/com/google/checkstyle/test/chapter4formatting/rule487modifiers/InputModifierOrder.java b/src/it/resources/com/google/checkstyle/test/chapter4formatting/rule487modifiers/InputModifierOrder.java
index ad405600d..1af55bc10 100644
--- a/src/it/resources/com/google/checkstyle/test/chapter4formatting/rule487modifiers/InputModifierOrder.java
+++ b/src/it/resources/com/google/checkstyle/test/chapter4formatting/rule487modifiers/InputModifierOrder.java
@@ -236,3 +236,11 @@ class WithInner
@interface MyAnnotation4 {
}
+
+/** Illegal order of modifiers for interface methods */
+interface InputModifierOrderInterface
+{
+ default strictfp void a() { } //ok
+
+ strictfp default void b() { } //warn
+}
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheck.java
index 396f3f1c4..8b145098c 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheck.java
@@ -41,6 +41,7 @@ import com.puppycrawl.tools.checkstyle.api.TokenTypes;
private
abstract
+ default
static
final
transient
@@ -84,8 +85,8 @@ public class ModifierOrderCheck
* 8.3.1 and 8.4.3 of the JLS.
*/
private static final String[] JLS_ORDER = {
- "public", "protected", "private", "abstract", "static", "final",
- "transient", "volatile", "synchronized", "native", "strictfp", "default",
+ "public", "protected", "private", "abstract", "default", "static",
+ "final", "transient", "volatile", "synchronized", "native", "strictfp",
};
@Override
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheckTest.java
index ae15ec5f3..594a8f224 100644
--- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheckTest.java
+++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/modifier/ModifierOrderCheckTest.java
@@ -66,6 +66,7 @@ public class ModifierOrderCheckTest
"34:13: " + getCheckMessage(MSG_ANNOTATION_ORDER, "@MyAnnotation2"),
"39:13: " + getCheckMessage(MSG_ANNOTATION_ORDER, "@MyAnnotation2"),
"49:35: " + getCheckMessage(MSG_ANNOTATION_ORDER, "@MyAnnotation4"),
+ "157:14: " + getCheckMessage(MSG_MODIFIER_ORDER, "default"),
};
verify(checkConfig, getPath("InputModifier.java"), expected);
}
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/modifier/InputModifier.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/modifier/InputModifier.java
index fd3ae6ca7..98eec5d1b 100644
--- a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/modifier/InputModifier.java
+++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/modifier/InputModifier.java
@@ -143,4 +143,18 @@ enum TestEnum {
public void method() {
}
-}
\ No newline at end of file
+}
+
+/** holder for interface specific modifier check. */
+interface InputDefaultPublicModifier
+{
+ /** correct order */
+ default strictfp void a()
+ {
+ }
+
+ /** wrong order */
+ strictfp default void b() // violation
+ {
+ }
+}
diff --git a/src/xdocs/config_modifier.xml b/src/xdocs/config_modifier.xml
index 32ef23e23..df274166f 100644
--- a/src/xdocs/config_modifier.xml
+++ b/src/xdocs/config_modifier.xml
@@ -27,8 +27,9 @@
Checks that the order of modifiers conforms to the suggestions in
the Java
- Language specification, sections 8.1.1, 8.3.1 and 8.4.3. The
- correct order is:
+ Language specification, sections 8.1.1, 8.3.1, 8.4.3 and
+ 9.4. The correct order is:
@@ -44,6 +45,9 @@
-
abstract
+ -
+
default
+
-
static