From 98f33451b4dbe17f292ecb9517cafde478001c9e Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Fri, 18 Nov 2011 16:27:18 +0100 Subject: [PATCH] [entropy.core.settings.base] catch any possible exception when calling generic_file_content_parser --- lib/entropy/core/settings/base.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/entropy/core/settings/base.py b/lib/entropy/core/settings/base.py index 21e3b0937..69a3f8cef 100644 --- a/lib/entropy/core/settings/base.py +++ b/lib/entropy/core/settings/base.py @@ -1824,8 +1824,23 @@ class SystemSettings(Singleton, EntropyPluginStore): cache_obj = {'mtime': mtime,} enc = etpConst['conf_encoding'] - lines = entropy.tools.generic_file_content_parser(filepath, - comment_tag = comment_tag, encoding = enc) + lines = [] + try: + lines += entropy.tools.generic_file_content_parser( + filepath, comment_tag = comment_tag, encoding = enc) + data = SystemSettings.CachingList(lines) + except IOError as err: + const_debug_write(__name__, "IOError __generic_parser, %s: %s" % ( + filepath, err,)) + except OSError as err: + const_debug_write(__name__, "OSError __generic_parser, %s: %s" % ( + filepath, err,)) + except UnicodeEncodeError as err: + const_debug_write(__name__, "UEE __generic_parser, %s: %s" % ( + filepath, err,)) + except UnicodeDecodeError as err: + const_debug_write(__name__, "UDE __generic_parser, %s: %s" % ( + filepath, err,)) data = SystemSettings.CachingList(lines) # do not cache CachingList, because it contains cache that # shouldn't survive a clear()