summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-04-10 10:55:36 +0200
committerAlon Levy <alon@pobox.com>2015-04-10 14:18:27 +0200
commit61a187b808d9c49ab955ce3af1d75c09b9e000e9 (patch)
tree4f67a5909f4d9a73e4864ff6b7395bdd333342ec /src/server
parentfc0427762d3e079b5f16e922fc296e05acb23065 (diff)
server/rz_kernel: rzdoc__create: avoid rethrow
Instead of raising and catching an exception by using the cache lookup extract a function to lookup in cache and then in db that just returns the result. Avoids an exception trace we log whenever there is an exception.
Diffstat (limited to 'src/server')
-rw-r--r--src/server/rz_kernel.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/rz_kernel.py b/src/server/rz_kernel.py
index 84d54acd..2f1ae59a 100644
--- a/src/server/rz_kernel.py
+++ b/src/server/rz_kernel.py
@@ -254,6 +254,12 @@ class RZ_Kernel(object):
rzdoc = self.db_ctl.exec_op(op)
return rzdoc # may be None
+ def rzdoc__lookup_by_name_with_cache(self, rzdoc_name):
+ cache_doc = self.cache__rzdoc_name_to_rzdoc.get(rzdoc_name)
+ if None != cache_doc:
+ return cache_doc
+ return self.rzdoc__lookup_by_name(rzdoc_name)
+
def rzdoc__create(self, rzdoc_name, ctx=None):
"""
Create & persist new RZDoc - may fail on unique name/id constraint violation
@@ -261,11 +267,8 @@ class RZ_Kernel(object):
@return: RZDoc object
@raise RZDoc_Exception__already_exists
"""
- try:
- self.cache_lookup__rzdoc(rzdoc_name)
+ if None != self.rzdoc__lookup_by_name_with_cache(rzdoc_name):
raise RZDoc_Exception__already_exists(rzdoc_name)
- except RZDoc_Exception__not_found:
- pass
rzdoc = RZDoc(rzdoc_name)
rzdoc.id = neo4j_util.generate_random_rzdoc_id()