diff --git a/url_image_preview/url_image_preview.py b/url_image_preview/url_image_preview.py index a5eda37..c7fc23d 100644 --- a/url_image_preview/url_image_preview.py +++ b/url_image_preview/url_image_preview.py @@ -344,7 +344,13 @@ class UrlImagePreviewPlugin(GajimPlugin): preview.thumbnail = data - pixbuf = pixbuf_from_data(preview.thumbnail) + try: + pixbuf = pixbuf_from_data(preview.thumbnail) + except Exception as err: + log.error('Unable to load: %s, %s', + preview.thumb_path.name, + err) + return self._update_textview(pixbuf, preview) def _download_content(self, preview): @@ -426,7 +432,14 @@ class UrlImagePreviewPlugin(GajimPlugin): return log.info('Thumbnail stored: %s ', preview.thumb_path.name) - pixbuf = pixbuf_from_data(preview.thumbnail) + + try: + pixbuf = pixbuf_from_data(preview.thumbnail) + except Exception as err: + log.error('Unable to load: %s, %s', + preview.thumb_path.name, + err) + return self._update_textview(pixbuf, preview) def _update_textview(self, pixbuf, preview): diff --git a/url_image_preview/utils.py b/url_image_preview/utils.py index 4148769..a6aba99 100644 --- a/url_image_preview/utils.py +++ b/url_image_preview/utils.py @@ -216,6 +216,7 @@ def pixbuf_from_data(data): loader = GdkPixbuf.PixbufLoader() try: loader.write(data) + loader.close() except GLib.Error: # Fallback to Pillow input_file = BytesIO(data) @@ -233,7 +234,6 @@ def pixbuf_from_data(data): input_file.close() return pixbuf - loader.close() return loader.get_pixbuf()