extra logging for IDEA-164040
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Wed, 16 Nov 2016 12:25:50 +0000 (15:25 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Wed, 16 Nov 2016 12:26:55 +0000 (15:26 +0300)
java/debugger/impl/src/com/intellij/debugger/jdi/VirtualMachineProxyImpl.java

index b2af9fd6a7e6fc0e84d454b3d1c398dfc185ba24..73ff7069af3eff1b93cc284e9dd2b44cae65f0bb 100644 (file)
@@ -131,7 +131,17 @@ public class VirtualMachineProxyImpl implements JdiTimer, VirtualMachineProxy {
         myAllClassesByName = new MultiMap<>();
         allClasses().forEach(t -> myAllClassesByName.putValue(t.signature(), t));
       }
-      return (List<ReferenceType>)myAllClassesByName.get(signature);
+      Collection<ReferenceType> res = myAllClassesByName.get(signature);
+      // TODO: Below is extra logging for IDEA-164040, remove when fixed
+      if (res.isEmpty()) {
+        List<ReferenceType> types = myVirtualMachine.classesByName(s);
+        if (!types.isEmpty()) {
+          LOG.error("Obsolete classes cache does not contain " + s + ", while the real vm does");
+          clearCaches();
+        }
+        return types;
+      }
+      return (List<ReferenceType>)res;
     }
     else {
       return myVirtualMachine.classesByName(s);