smashwilson / merge-conflicts

Resolve git merge conflicts in Atom
https://atom.io/packages/merge-conflicts
MIT License
431 stars 42 forks source link

Uncaught Error: This TextEditor has been destroyed #126

Closed akilhoffer closed 9 years ago

akilhoffer commented 9 years ago

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 0.178.0 System: Mac OS X 10.10.2 Thrown From: merge-conflicts package, v1.2.10

Stack Trace

Uncaught Error: This TextEditor has been destroyed

At /Applications/Atom.app/Contents/Resources/app/src/display-buffer.js:1007

Error: This TextEditor has been destroyed
  at DisplayBuffer.module.exports.DisplayBuffer.screenPositionForBufferPosition (/Applications/Atom.app/Contents/Resources/app/src/display-buffer.js:1007:15)
  at Marker.module.exports.Marker.getTailScreenPosition (/Applications/Atom.app/Contents/Resources/app/src/marker.js:230:33)
  at TextEditorPresenter.module.exports.TextEditorPresenter.updateOverlaysState (/Applications/Atom.app/Contents/Resources/app/src/text-editor-presenter.js:309:51)
  at TextEditorPresenter.module.exports.TextEditorPresenter.didDestroyDecoration (/Applications/Atom.app/Contents/Resources/app/src/text-editor-presenter.js:944:21)
  at /Applications/Atom.app/Contents/Resources/app/src/text-editor-presenter.js:891:24
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:82:11)
  at Decoration.module.exports.Decoration.destroy (/Applications/Atom.app/Contents/Resources/app/src/decoration.js:59:20)
  at SideView.CoveringView.cleanup (/Users/Anthony/.atom/packages/merge-conflicts/lib/covering-view.coffee:31:15)
  at SideView.module.exports.SideView.cleanup (/Users/Anthony/.atom/packages/merge-conflicts/lib/side-view.coffee:37:5)
  at /Users/Anthony/.atom/packages/merge-conflicts/lib/covering-view.coffee:15:45
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:82:11)
  at TextEditor.module.exports.TextEditor.destroyed (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:270:27)
  at TextEditor.module.exports.Model.destroy (/Applications/Atom.app/Contents/Resources/app/node_modules/theorist/lib/model.js:218:14)
  at Pane.module.exports.Pane.destroyItem (/Applications/Atom.app/Contents/Resources/app/src/pane.js:459:18)
  at TabBarView.module.exports.TabBarView.closeTab (/Applications/Atom.app/Contents/Resources/app/node_modules/tabs/lib/tab-bar-view.js:285:24)
  at TabBarView.module.exports.TabBarView.closeAllTabs (/Applications/Atom.app/Contents/Resources/app/node_modules/tabs/lib/tab-bar-view.js:360:28)
  at space-pen-ul.subscriptions.add.atom.commands.add.tabs:close-all-tabs (/Applications/Atom.app/Contents/Resources/app/node_modules/tabs/lib/tab-bar-view.js:67:26)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61)
  at CommandRegistry.module.exports.CommandRegistry.dispatch (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:156:19)
  at [object Object].jQuery.fn.trigger (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:64:23)
  at EventEmitter.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:70:67)
  at EventEmitter.emit (events.js:119:17)
  at EventEmitter.ipc.sendSync (/Applications/Atom.app/Contents/Resources/atom/renderer/api/lib/ipc.js:21:31)
  at BrowserWindow.RemoteMemberFunction [as emit] (/Applications/Atom.app/Contents/Resources/atom/renderer/api/lib/remote.js:110:29)
  at ContextMenuManager.module.exports.ContextMenuManager.showForEvent (/Applications/Atom.app/Contents/Resources/app/src/context-menu-manager.js:169:33)
  at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:143:33)
  at HTMLDocument.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:112:34)
  at HTMLDocument.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at HTMLDocument.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)

Commands

     -5:55.4 core:copy (atom-text-editor.editor)
     -5:40.1 core:paste (atom-text-editor.editor.autocomplete-active)
     -5:37.8 core:save (atom-text-editor.editor.autocomplete-active)
  2x -4:28.9 editor:select-to-first-character-of-line (atom-text-editor.editor.autocomplete-active)
  2x -4:28.2 core:backspace (atom-text-editor.editor.autocomplete-active)
  7x -4:27.4 core:move-up (atom-text-editor.editor.autocomplete-active)
  6x -4:25.7 core:select-up (atom-text-editor.editor.autocomplete-active)
     -4:16.9 editor:select-to-first-character-of-line (atom-text-editor.editor.autocomplete-active)
     -3:46.7 merge-conflicts:detect (atom-text-editor.editor.autocomplete-active)
     -3:41.0 core:undo (atom-text-editor.editor.autocomplete-active)
     -3:37.9 core:save (atom-text-editor.editor.autocomplete-active)
     -3:13.1 merge-conflicts:detect (atom-text-editor.editor.autocomplete-active)
     -2:11.1 core:save (atom-text-editor.editor.autocomplete-active)

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "ruby-blue-syntax"
    ]
  }
}

Installed Packages

# User
angularjs, v0.2.0
atom-beautify, v0.21.3
autocomplete-plus, v2.1.5
color-picker, v1.4.4
jshint, v1.2.0
language-typescript, v0.15.0
merge-conflicts, v1.2.10
minimap, v4.1.4
project-manager, v1.15.5
ruby-blue-syntax, v0.1.13
terminal-panel, v1.9.2

# Dev
No dev packages
smashwilson commented 9 years ago

On closer inspection, this looks like a lifecycle problem with overlay decorations that's since been fixed. Decoration.destroy now checks for duplicate destruction, which it looks like the problem was here.

If you can replicate on v1.3.4 and a recent Atom, let me know :smile: