diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log
new file mode 100644
index 000000000000..faa9c5f33499
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod.log
@@ -0,0 +1,14 @@
+Cleaning output files:
+out/production/DeleteInterfaceMethod/Iface.class
+End of files
+Compiling files:
+src/Iface.java
+End of files
+Cleaning output files:
+out/production/DeleteInterfaceMethod/IfaceImpl.class
+out/production/DeleteInterfaceMethod/IfaceImpl2.class
+End of files
+Compiling files:
+src/IfaceImpl.java
+src/IfaceImpl2.java
+End of files
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name
new file mode 100644
index 000000000000..4f11cb35e8b6
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/.name
@@ -0,0 +1 @@
+deleteMethod
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml
new file mode 100644
index 000000000000..a1b41c52c724
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/compiler.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml
new file mode 100644
index 000000000000..3572571ad83c
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml
new file mode 100644
index 000000000000..e206d70d8595
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/encodings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml
new file mode 100644
index 000000000000..f22d96b8c6a5
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/misc.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IDEA jdk
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml
new file mode 100644
index 000000000000..f0aebe91e4fb
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/modules.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml
new file mode 100644
index 000000000000..922003b8433b
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml
new file mode 100644
index 000000000000..3b0002030884
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/uiDesigner.xml
@@ -0,0 +1,125 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml
new file mode 100644
index 000000000000..def6a6a18457
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml
new file mode 100644
index 000000000000..2ee5148c0911
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/.idea/workspace.xml
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ localhost
+ 5050
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+ 1317921967960
+ 1317921967960
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml
new file mode 100644
index 000000000000..d5c074327501
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/DeleteInterfaceMethod.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new
new file mode 100644
index 000000000000..b95f0d5a0f99
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/Iface.java.new
@@ -0,0 +1,2 @@
+public interface Iface {
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml
new file mode 100644
index 000000000000..9f7d25766ca5
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/data.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java
new file mode 100644
index 000000000000..a912a31bf0ae
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/Iface.java
@@ -0,0 +1,3 @@
+public interface Iface {
+ void method();
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java
new file mode 100644
index 000000000000..29c7c84642a7
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl.java
@@ -0,0 +1,3 @@
+public class IfaceImpl implements Iface {
+ public void method() {}
+}
\ No newline at end of file
diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java
new file mode 100644
index 000000000000..20ab73184a22
--- /dev/null
+++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteInterfaceMethod/src/IfaceImpl2.java
@@ -0,0 +1,4 @@
+public class IfaceImpl2 implements Iface {
+ @Override
+ public void method() {}
+}
\ No newline at end of file
diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java
index cfe091f05825..bc3f8a5002bd 100644
--- a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java
+++ b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java
@@ -104,6 +104,10 @@ public class MemberChangeTest extends IncrementalTestCase {
doTest();
}
+ public void testDeleteInterfaceMethod() throws Exception {
+ doTest();
+ }
+
public void testDeleteMethodImplementation() throws Exception {
doTest();
}
diff --git a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java
index 860603820460..e0c6928bb2bf 100644
--- a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java
+++ b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java
@@ -1140,13 +1140,13 @@ public class Mappings {
}
}
- if ((m.access & Opcodes.ACC_ABSTRACT) == 0) {
- final Collection> overriding = u.findOverridingMethods(m, it, false);
+ final Collection> overriding = u.findOverridingMethods(m, it, false);
+ for (final Pair p : overriding) {
+ final DependencyContext.S fName = myClassToSourceFile.get(p.second.name);
+ affectedFiles.add(new File(myContext.getValue(fName)));
+ }
- for (final Pair p : overriding) {
- final DependencyContext.S fName = myClassToSourceFile.get(p.second.name);
- affectedFiles.add(new File(myContext.getValue(fName)));
- }
+ if ((m.access & Opcodes.ACC_ABSTRACT) == 0) {
for (DependencyContext.S p : propagated) {
if (!p.equals(it.name)) {