diff --git a/docs/pages/pmd/rules/apex/empty.md b/docs/pages/pmd/rules/apex/empty.md
index 7ff4634022..c185ad1fae 100644
--- a/docs/pages/pmd/rules/apex/empty.md
+++ b/docs/pages/pmd/rules/apex/empty.md
@@ -144,3 +144,33 @@ public class Foo {
```
+## EmptyStatementBlock
+
+**Since:** PMD 6.0.0
+
+**Priority:** Medium (3)
+
+Empty block statements serve no purpose and should be removed.
+
+```
+//Method/ModifierNode[@Abstract!='true' and ../BlockStatement[count(*) = 0]]
+| //Method/BlockStatement//BlockStatement[count(*) = 0]```
+
+**Example(s):**
+
+``` java
+public class Foo {
+ public void setBar(int bar) {
+ // empty, not allowed
+ }
+
+ public abstract void foo() {
+ // this is allowed
+ }
+}
+```
+
+**Use this rule by referencing it:**
+``` xml
+
+```
diff --git a/pmd-apex/src/main/resources/rulesets/apex/empty.xml b/pmd-apex/src/main/resources/rulesets/apex/empty.xml
index 1fc42ae75c..497d065fe1 100644
--- a/pmd-apex/src/main/resources/rulesets/apex/empty.xml
+++ b/pmd-apex/src/main/resources/rulesets/apex/empty.xml
@@ -154,4 +154,39 @@ public void bar(Integer a, Integer b) {
+
+
+
+Empty block statements serve no purpose and should be removed.
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml b/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml
index 89fb089fae..e820675888 100644
--- a/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml
+++ b/pmd-apex/src/main/resources/rulesets/apex/ruleset.xml
@@ -361,4 +361,13 @@
+
+ 3
+
+
+
+
+
+
+
diff --git a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java
index e84da1479e..3ece406df7 100644
--- a/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java
+++ b/pmd-apex/src/test/java/net/sourceforge/pmd/lang/apex/rule/empty/EmptyRulesTest.java
@@ -16,5 +16,6 @@ public class EmptyRulesTest extends SimpleAggregatorTst {
addRule(RULESET, "EmptyIfStmt");
addRule(RULESET, "EmptyTryOrFinallyBlock");
addRule(RULESET, "EmptyWhileStmt");
+ addRule(RULESET, "EmptyStatementBlock");
}
}
diff --git a/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml
new file mode 100644
index 0000000000..d0fd844c87
--- /dev/null
+++ b/pmd-apex/src/test/resources/net/sourceforge/pmd/lang/apex/rule/empty/xml/EmptyStatementBlock.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ 1
+
+
+
+
+ 0
+
+
+