summaryrefslogtreecommitdiff
path: root/python/qpid/spec010.py
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2008-05-06 18:31:11 +0000
committerRafael H. Schloming <rhs@apache.org>2008-05-06 18:31:11 +0000
commitf5813621fff3ca6720e7851bf9f914258f16b60c (patch)
treed56abae1444d4bf860f06cc6dff545e73f52afee /python/qpid/spec010.py
parent8d8a9162f7ba5a99a7c8b8b57aae860ab3028078 (diff)
downloadqpid-python-f5813621fff3ca6720e7851bf9f914258f16b60c.tar.gz
QPID-1033: made loading of the spec file not fail if the results cannot be cached, e.g. due to an unwritable directory
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@653875 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/spec010.py')
-rw-r--r--python/qpid/spec010.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/python/qpid/spec010.py b/python/qpid/spec010.py
index 03f60edc4e..1668729876 100644
--- a/python/qpid/spec010.py
+++ b/python/qpid/spec010.py
@@ -621,6 +621,7 @@ class Loader:
def load(xml):
fname = xml + ".pcl"
+
if os.path.exists(fname) and mtime(fname) > mtime(__file__):
file = open(fname, "r")
s = cPickle.load(file)
@@ -630,7 +631,14 @@ def load(xml):
s = doc["amqp"].dispatch(Loader())
s.register()
s.resolve()
- file = open(fname, "w")
- cPickle.dump(s, file)
- file.close()
+
+ try:
+ file = open(fname, "w")
+ except IOError:
+ file = None
+
+ if file:
+ cPickle.dump(s, file)
+ file.close()
+
return s