mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-133881 Debugger will not stop on a breakpoint in a method of an inner class of an anonymous - fixes after review
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -249,13 +249,13 @@ public class JVMNameUtil {
|
||||
}
|
||||
|
||||
public static JVMName getJVMQualifiedName(PsiClass psiClass) {
|
||||
if (!PsiUtil.isLocalOrAnonymousClass(psiClass)) {
|
||||
final String name = getNonAnonymousClassName(psiClass);
|
||||
if (name != null) {
|
||||
return getJVMRawText(name);
|
||||
}
|
||||
final String name = getNonAnonymousClassName(psiClass);
|
||||
if (name != null) {
|
||||
return getJVMRawText(name);
|
||||
}
|
||||
else {
|
||||
return new JVMClassAt(SourcePosition.createFromElement(psiClass));
|
||||
}
|
||||
return new JVMClassAt(SourcePosition.createFromElement(psiClass));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -264,17 +264,18 @@ public class JVMNameUtil {
|
||||
if (psiClass == null) {
|
||||
return null;
|
||||
}
|
||||
if (!PsiUtil.isLocalOrAnonymousClass(psiClass)) {
|
||||
final String name = getNonAnonymousClassName(psiClass);
|
||||
if (name != null) {
|
||||
return getJVMRawText(name);
|
||||
}
|
||||
final String name = getNonAnonymousClassName(psiClass);
|
||||
if (name != null) {
|
||||
return getJVMRawText(name);
|
||||
}
|
||||
return new JVMClassAt(pos);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getNonAnonymousClassName(PsiClass aClass) {
|
||||
if (PsiUtil.isLocalOrAnonymousClass(aClass)) {
|
||||
return null;
|
||||
}
|
||||
String name = aClass.getName();
|
||||
if (name == null) {
|
||||
return null;
|
||||
|
||||
@@ -84,7 +84,8 @@ public class PositionManagerImpl implements PositionManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!classHasName(psiClass)) {
|
||||
String className = JVMNameUtil.getNonAnonymousClassName(psiClass);
|
||||
if (className == null) {
|
||||
final PsiClass parent = JVMNameUtil.getTopLevelParentClass(psiClass);
|
||||
|
||||
if (parent == null) {
|
||||
@@ -107,7 +108,7 @@ public class PositionManagerImpl implements PositionManager {
|
||||
});
|
||||
}
|
||||
else {
|
||||
waitPrepareFor.set(JVMNameUtil.getNonAnonymousClassName(psiClass));
|
||||
waitPrepareFor.set(className);
|
||||
waitRequestor.set(requestor);
|
||||
}
|
||||
}
|
||||
@@ -118,10 +119,6 @@ public class PositionManagerImpl implements PositionManager {
|
||||
return myDebugProcess.getRequestsManager().createClassPrepareRequest(waitRequestor.get(), waitPrepareFor.get());
|
||||
}
|
||||
|
||||
private static boolean classHasName(PsiClass psiClass) {
|
||||
return !PsiUtil.isLocalOrAnonymousClass(psiClass) && JVMNameUtil.getNonAnonymousClassName(psiClass) != null;
|
||||
}
|
||||
|
||||
public SourcePosition getSourcePosition(final Location location) throws NoDataException {
|
||||
DebuggerManagerThreadImpl.assertIsManagerThread();
|
||||
if(location == null) {
|
||||
@@ -244,7 +241,8 @@ public class PositionManagerImpl implements PositionManager {
|
||||
final PsiClass psiClass = JVMNameUtil.getClassAt(position);
|
||||
if (psiClass != null) {
|
||||
classAtPositionRef.set(psiClass);
|
||||
if (!classHasName(psiClass)) {
|
||||
String className = JVMNameUtil.getNonAnonymousClassName(psiClass);
|
||||
if (className == null) {
|
||||
isLocalOrAnonymous.set(Boolean.TRUE);
|
||||
final PsiClass topLevelClass = JVMNameUtil.getTopLevelParentClass(psiClass);
|
||||
if (topLevelClass != null) {
|
||||
@@ -259,10 +257,7 @@ public class PositionManagerImpl implements PositionManager {
|
||||
}
|
||||
}
|
||||
else {
|
||||
final String className = JVMNameUtil.getNonAnonymousClassName(psiClass);
|
||||
if (className != null) {
|
||||
baseClassNameRef.set(className);
|
||||
}
|
||||
baseClassNameRef.set(className);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user