import java.io.IOException;
import java.sql.SQLException;

@SuppressWarnings("all")
public class DRE_Sample {
    public void test1(int a) throws NullPointerException {
    }

    public void test2(int b) throws ClassCastException, IOException, IllegalMonitorStateException {
        if (b == 0)
            throw new IOException("test");
    }

    public void test3(int c) throws SQLException {
        if (c == 0)
            throw new SQLException("test");
    }

    public void test4(int d) throws CustomRuntimeException {
        if (d == 0)
            throw new CustomRuntimeException();
    }
}

@SuppressWarnings("all")
class CustomRuntimeException extends RuntimeException {

}
@@ -103,20 +103,17 @@
 ample %7B%0A
-    
+%09
 public v
@@ -159,27 +159,21 @@
 ption %7B%0A
-    %7D%0A%0A    
+%09%7D%0A%0A%09
 public v
@@ -256,32 +256,26 @@
 Exception %7B%0A
-        
+%09%09
 if (b == 0)%0A
@@ -269,37 +269,30 @@
 %09if (b == 0)
-%0A            
+ %7B%0A%09%09%09
 throw new IO
@@ -306,35 +306,33 @@
 on(%22test%22);%0A
-    %7D%0A%0A    
+%09%09%7D%0A%09%7D%0A%0A%09
 public void 
@@ -362,32 +362,26 @@
 Exception %7B%0A
-        
+%09%09
 if (c == 0)%0A
@@ -375,37 +375,30 @@
 %09if (c == 0)
-%0A            
+ %7B%0A%09%09%09
 throw new SQ
@@ -421,19 +421,17 @@
 %22);%0A
-    %7D%0A%0A    
+%09%09%7D%0A%09%7D%0A%0A%09
 publ
@@ -483,24 +483,18 @@
 ption %7B%0A
-        
+%09%09
 if (d ==
@@ -500,21 +500,14 @@
 = 0)
-%0A            
+ %7B%0A%09%09%09
 thro
@@ -542,12 +542,13 @@
 ();%0A
-    
+%09%09%7D%0A%09
 %7D%0A%7D%0A
@@ -631,8 +631,244 @@
 ion %7B%0A%0A%7D
+%0A%0Aclass TestRuntimeExceptionOnImplementingClass implements ThrowsRuntimeException %7B%0A%09@Override%0A%09public String someMethod() %7B%0A%09%09return %22foo%22;%0A%09%7D%0A%7D%0A%0Ainterface ThrowsRuntimeException %7B%0A%09public Object someMethod() throws RuntimeException;%0A%7D

add FP from GitHub issue 51