avoid offset calculation in case of LightVirtualFile or HttpVirtualFile
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 6 Dec 2013 08:21:50 +0000 (09:21 +0100)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Fri, 6 Dec 2013 08:21:50 +0000 (09:21 +0100)
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XSourcePositionImpl.java

index 2620a909499fe684d5c828c869e7e6223af56f7c..579798caec5d309ccb5901d8c386aadb3f8203b6 100644 (file)
@@ -20,7 +20,9 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.fileEditor.OpenFileDescriptor;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.openapi.vfs.impl.http.HttpVirtualFile;
 import com.intellij.pom.Navigatable;
+import com.intellij.testFramework.LightVirtualFile;
 import com.intellij.xdebugger.XSourcePosition;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -78,14 +80,21 @@ public class XSourcePositionImpl implements XSourcePosition {
       return null;
     }
 
-    Document document = FileDocumentManager.getInstance().getDocument(file);
-    if (document == null) {
-      return null;
+    int offset;
+    if (file instanceof LightVirtualFile || file instanceof HttpVirtualFile) {
+      offset = -1;
     }
-    if (line < 0) {
-      line = 0;
+    else {
+      Document document = FileDocumentManager.getInstance().getDocument(file);
+      if (document == null) {
+        return null;
+      }
+      if (line < 0) {
+        line = 0;
+      }
+
+      offset = line < document.getLineCount() ? document.getLineStartOffset(line) : -1;
     }
-    int offset = line < document.getLineCount() ? document.getLineStartOffset(line) : -1;
     return new XSourcePositionImpl(file, line, offset);
   }