diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation4.log b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation4.log index 30038ec68e16..db72b0f2704d 100644 --- a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation4.log +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation4.log @@ -5,8 +5,10 @@ Compiling files: src/Base.java End of files Cleaning output files: +out/production/DeleteMethodImplementation4/BaseImpl.class out/production/DeleteMethodImplementation4/BaseImplImpl.class End of files Compiling files: +src/BaseImpl.java src/BaseImplImpl.java End of files diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation5.log b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation5.log index c8a95e08349b..a36940f74f64 100644 --- a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation5.log +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation5.log @@ -4,3 +4,9 @@ End of files Compiling files: src/Base.java End of files +Cleaning output files: +out/production/DeleteMethodImplementation5/BaseImpl.class +End of files +Compiling files: +src/BaseImpl.java +End of files diff --git a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation6.log b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation6.log index 0548319f9020..e4bd38375b69 100644 --- a/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation6.log +++ b/java/java-tests/testData/compileServer/incremental/membersChange/deleteMethodImplementation6.log @@ -4,3 +4,9 @@ End of files Compiling files: src/BaseImpl.java End of files +Cleaning output files: +out/production/DeleteMethodImplementation6/BaseImplImpl.class +End of files +Compiling files: +src/BaseImplImpl.java +End of files diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/GenericTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/GenericTest.java index facc69d594e6..5fded763c906 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/GenericTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/GenericTest.java @@ -72,7 +72,7 @@ public class GenericTest extends IncrementalTestCase { public void testChangeToCovariantMethodInBase3() throws Exception { doTest(); } - + */ public void testChangeVarargSignature() throws Exception { doTest(); } @@ -80,7 +80,6 @@ public class GenericTest extends IncrementalTestCase { public void testChangeVarargSignature1() throws Exception { doTest(); } - */ public void testCovariance() throws Exception { doTest(); @@ -114,7 +113,7 @@ public class GenericTest extends IncrementalTestCase { doTest(); } - /* Not working yet + /* Not working yet */ public void testOverrideAnnotatedAnonymousNotRecompile() throws Exception { doTest(); } @@ -122,7 +121,6 @@ public class GenericTest extends IncrementalTestCase { public void testOverrideAnnotatedInner() throws Exception { doTest(); } - */ public void testParamTypes() throws Exception { doTest(); diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java index 48ed13b9920e..6160a0126ced 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/IncrementalTestCase.java @@ -177,7 +177,7 @@ public abstract class IncrementalTestCase extends TestCase { finally { try { closeAppender(); - delete(new File(workDir)); + //delete(new File(workDir)); } finally { Logger.setFactory(oldFactory); diff --git a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java index 7fbcc9becf45..cfe091f05825 100644 --- a/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java +++ b/jps/jps-builders/testSrc/org/jetbrains/ether/MemberChangeTest.java @@ -116,11 +116,9 @@ public class MemberChangeTest extends IncrementalTestCase { doTest(); } - /* Not working yet public void testDeleteMethodImplementation4() throws Exception { doTest(); } - */ public void testDeleteMethodImplementation5() 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 d5d3bd1957c0..cc586037d2b9 100644 --- a/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java +++ b/jps/model/src/org/jetbrains/ether/dependencyView/Mappings.java @@ -1103,47 +1103,55 @@ public class Mappings { } if ((m.access & Opcodes.ACC_ABSTRACT) == 0) { + 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 (DependencyContext.S p : propagated) { - final ClassRepr s = u.reprByName(p); + if (!p.equals(it.name)) { + final ClassRepr s = u.reprByName(p); - if (s != null) { - final Collection> overridenInS = u.findOverridenMethods(m, s); + if (s != null) { + final Collection> overridenInS = u.findOverridenMethods(m, s); - overridenInS.addAll(overridenMethods); + overridenInS.addAll(overridenMethods); - boolean allAbstract = true; - boolean visited = false; + boolean allAbstract = true; + boolean visited = false; - for (Pair pp : overridenInS) { - final ClassRepr cc = pp.second; + for (Pair pp : overridenInS) { + final ClassRepr cc = pp.second; + + if (cc == myMockClass) { + visited = true; + continue; + } + + if (cc.name.equals(it.name)) { + continue; + } - if (cc == myMockClass) { visited = true; - continue; + allAbstract = ((pp.first.access & Opcodes.ACC_ABSTRACT) > 0) || ((cc.access & Opcodes.ACC_INTERFACE) > 0); + + if (!allAbstract) { + break; + } } - if (cc.name.equals(it.name)) { - continue; - } + if (allAbstract && visited) { + final DependencyContext.S source = myClassToSourceFile.get(p); - visited = true; - allAbstract = ((pp.first.access & Opcodes.ACC_ABSTRACT) > 0) || ((cc.access & Opcodes.ACC_INTERFACE) > 0); - - if (!allAbstract) { - break; - } - } - - if (allAbstract && visited) { - final DependencyContext.S source = myClassToSourceFile.get(p); - - if (source != null) { - final String f = myContext.getValue(source); - debug( - "Removed method is not abstract & is overrides some abstract method which is not then over-overriden in subclass ", - p); - debug("Affecting subclass source file ", f); - affectedFiles.add(new File(f)); + if (source != null) { + final String f = myContext.getValue(source); + debug("Removed method is not abstract & overrides some abstract method which is not then over-overriden in subclass ", + p); + debug("Affecting subclass source file ", f); + affectedFiles.add(new File(f)); + } } } } @@ -1597,19 +1605,19 @@ public class Mappings { for (DependencyContext.S f : delta.getChangedFiles()) { mySourceFileToClasses.remove(f); final Collection classes = delta.mySourceFileToClasses.get(f); - if (classes != null){ + if (classes != null) { mySourceFileToClasses.put(f, classes); } mySourceFileToUsages.remove(f); final Collection clusters = delta.mySourceFileToUsages.get(f); - if (clusters != null){ + if (clusters != null) { mySourceFileToUsages.put(f, clusters); } mySourceFileToAnnotationUsages.remove(f); final Collection usages = delta.mySourceFileToAnnotationUsages.get(f); - if (usages != null){ + if (usages != null) { mySourceFileToAnnotationUsages.put(f, usages); } } @@ -1637,7 +1645,7 @@ public class Mappings { depClasses.retainAll(changedClasses); - if (! classChanged && depClasses.isEmpty()) { + if (!classChanged && depClasses.isEmpty()) { continue; } }