From a7df3b2a88170d6300d547f7f1cacdc3f008846d Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Wed, 10 Aug 2016 10:34:04 -0600 Subject: [PATCH] Avoid throwing null pointer exceptions when package update fails Also, send assertion failures back to bugsnag when this happens. --- lib/package-card.coffee | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/package-card.coffee b/lib/package-card.coffee index fe9950aa..fd8f92aa 100644 --- a/lib/package-card.coffee +++ b/lib/package-card.coffee @@ -467,10 +467,20 @@ class PackageCard extends View update: -> return unless @newVersion or @newSha - @packageManager.update @installablePack ? @pack, @newVersion, (error) => + pack = @installablePack ? @pack + version = if @newVersion then "v#{@newVersion}" else "##{@newSha.substr(0, 8)}" + @packageManager.update pack, @newVersion, (error) => if error? - version = if @newVersion then "v#{newVersion}" else "##{@newSha.substr(0, 8)}" - console.error("Updating #{@type} #{@pack.name} to #{version} failed", error.stack ? error, error.stderr) + atom.assert false, "Package update failed", (assertionError) => + assertionError.metadata = { + type: @type, + name: pack.name, + version: version, + errorMessage: error.message, + errorStack: error.stack, + errorStderr: error.stderr + } + console.error("Updating #{@type} #{pack.name} to #{version} failed:\n", error, error.stderr ? '') uninstall: -> @packageManager.uninstall @pack, (error) =>