IDEA-133347 Can't set breakpoint and debug in decompiled code
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Mon, 19 Jan 2015 15:07:55 +0000 (18:07 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Mon, 19 Jan 2015 15:09:17 +0000 (18:09 +0300)
java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaLineBreakpointTypeBase.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java

index ebaee1e6d5ee2058a115c156163d20742ad6765f..1be1fb56557d0e09bc143306850815d5cc273ac3 100644 (file)
@@ -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.
@@ -16,7 +16,6 @@
 package com.intellij.debugger.ui.breakpoints;
 
 import com.intellij.debugger.engine.DebuggerUtils;
-import com.intellij.execution.filters.LineNumbersMapping;
 import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.fileTypes.StdFileTypes;
@@ -129,9 +128,6 @@ public abstract class JavaLineBreakpointTypeBase<P extends JavaBreakpointPropert
                 result.set(JavaLineBreakpointType.class);
               }
             }
-            else if (file.getUserData(LineNumbersMapping.LINE_NUMBERS_MAPPING_KEY) != null) {
-              result.set(JavaLineBreakpointType.class);
-            }
           }
           if (result.isNull()) {
             result.set(JavaMethodBreakpointType.class);
index 8e51cefab29a8aba801b81f982d5bb9b282b9267..c8c81f08882cd843afa4ada4c04025914a6b4919 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 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.
@@ -275,6 +275,11 @@ public class XDebuggerUtilImpl extends XDebuggerUtil {
 
     PsiElement element;
     int offset = lineStart;
+
+    if (file instanceof PsiCompiledFile) {
+      file = ((PsiCompiledFile)file).getDecompiledPsiFile();
+    }
+
     while (offset < lineEnd) {
       element = file.findElementAt(offset);
       if (element != null) {