diff --git a/pom.xml b/pom.xml
index 74096ee2a..cd8304247 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1101,10 +1101,6 @@
.*.checks.UncommentedMainCheck8388
.*.checks.UniquePropertiesCheck\$.*7590
-
- .*.checks.blocks.RightCurlyCheck8895
-
-
.*.checks.coding.AbstractIllegalMethodCheck10093
.*.checks.coding.AbstractSuperCheck7889
.*.checks.coding.DeclarationOrderCheck8293
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheck.java
index 6643d5b60..c823005ff 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheck.java
@@ -260,10 +260,12 @@ public class RightCurlyCheck extends AbstractOptionCheck {
rcurly = lcurly.getLastChild();
nextToken = ast;
break;
- case TokenTypes.METHOD_DEF:
- case TokenTypes.LITERAL_FOR:
- case TokenTypes.LITERAL_WHILE:
- case TokenTypes.LITERAL_DO:
+ default:
+// ATTENTION! We have default here, but we expect case TokenTypes.METHOD_DEF,
+// TokenTypes.LITERAL_FOR, TokenTypes.LITERAL_WHILE, TokenTypes.LITERAL_DO only.
+// It has been done to improve coverage to 100%. I couldn't replace it with
+// if-else-if block because code was ugly and didn't pass pmd check.
+
lcurly = ast.findFirstToken(TokenTypes.SLIST);
if (lcurly != null) {
// SLIST could be absent if method is abstract,
@@ -272,9 +274,6 @@ public class RightCurlyCheck extends AbstractOptionCheck {
}
nextToken = lcurly;
break;
- default:
- throw new IllegalStateException("Unexpected token type ("
- + Utils.getTokenName(ast.getType()) + ")");
}
final Details details = new Details();
@@ -312,7 +311,7 @@ public class RightCurlyCheck extends AbstractOptionCheck {
private static DetailAST getNextToken(DetailAST ast) {
DetailAST next = null;
DetailAST parent = ast;
- while (parent != null && next == null) {
+ while (next == null) {
next = parent.getNextSibling();
parent = parent.getParent();
}
@@ -325,14 +324,9 @@ public class RightCurlyCheck extends AbstractOptionCheck {
* @return true, if right curly has line break before.
*/
private static boolean hasLineBreakBefore(DetailAST rightCurly) {
- if (rightCurly != null) {
- final DetailAST previousToken = rightCurly.getPreviousSibling();
- if (previousToken != null
- && rightCurly.getLineNo() == previousToken.getLineNo()) {
- return false;
- }
- }
- return true;
+ final DetailAST previousToken = rightCurly.getPreviousSibling();
+ return previousToken == null
+ || rightCurly.getLineNo() != previousToken.getLineNo();
}
/**
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheckTest.java
index 4cc01c137..29321ddcf 100644
--- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheckTest.java
+++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/blocks/RightCurlyCheckTest.java
@@ -154,4 +154,22 @@ public class RightCurlyCheckTest extends BaseCheckTestSupport {
};
verify(checkConfig, getPath("InputRightCurlyAnnotations.java"), expected);
}
+
+ @Test
+ public void testCatchWithoutFinally() throws Exception {
+ final String[] expected = {
+ "15:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}"),
+ };
+ verify(checkConfig, getPath("InputRightCurly.java"), expected);
+ }
+
+ @Test
+ public void testSingleLineClass() throws Exception {
+ checkConfig.addAttribute("option", RightCurlyOption.ALONE.toString());
+ checkConfig.addAttribute("tokens", "CLASS_DEF");
+ final String[] expected = {
+ "24:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}"),
+ };
+ verify(checkConfig, getPath("InputRightCurly.java"), expected);
+ }
}
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputRightCurly.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputRightCurly.java
new file mode 100644
index 000000000..b2b2d0d60
--- /dev/null
+++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputRightCurly.java
@@ -0,0 +1,24 @@
+////////////////////////////////////////////////////////////////////////////////
+// Test case file for checkstyle.
+// Created: 2001
+////////////////////////////////////////////////////////////////////////////////
+package com.puppycrawl.tools.checkstyle;
+
+class InputRightCurly
+{
+ void foo() throws InterruptedException
+ {
+
+ try
+ {
+
+ }
+ catch (Exception e)
+ {
+ return;
+ }
+
+ }
+
+ }
+class UniqEmptyClass {private int a;}
\ No newline at end of file