From c44caa5c96befde25f09db11cd3c4625e4725cd7 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Thu, 22 Aug 2013 16:14:14 -0400 Subject: [PATCH] endSessionDialog: Don't error out if gnome-session hands us a dead inhibitor Sometimes gnome-session hands us a bad object path for JIT inhibitors it creates for XSMP clients. While this is a bug in gnome-session, we shouldn't show an empty-looking dialog here. https://bugzilla.gnome.org/show_bug.cgi?id=706612 --- js/ui/endSessionDialog.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 48ff151bf..99525933b 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -118,7 +118,15 @@ const DialogContent = { }; function findAppFromInhibitor(inhibitor) { - let [desktopFile] = inhibitor.GetAppIdSync(); + let desktopFile; + try { + [desktopFile] = inhibitor.GetAppIdSync(); + } catch(e) { + // XXX -- sometimes JIT inhibitors generated by gnome-session + // get removed too soon. Don't fail in this case. + log('gnome-session gave us a dead inhibitor: %s'.format(inhibitor.get_object_path()); + return null; + } if (!GLib.str_has_suffix(desktopFile, '.desktop')) desktopFile += '.desktop';