diff options
Diffstat (limited to 'cpp/src/Freeze/ObjectStore.cpp')
-rw-r--r-- | cpp/src/Freeze/ObjectStore.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp index a8cc39c9079..00d244f0308 100644 --- a/cpp/src/Freeze/ObjectStore.cpp +++ b/cpp/src/Freeze/ObjectStore.cpp @@ -336,10 +336,6 @@ Freeze::ObjectStore::load(const Identity& ident) } break; // for(;;) } - catch(const DbMemoryException& dx) - { - handleMemoryException(dx, value, dbValue); - } catch(const DbDeadlockException&) { if(_evictor->deadlockWarning()) @@ -354,9 +350,14 @@ Freeze::ObjectStore::load(const Identity& ident) } catch(const DbException& dx) { - DatabaseException ex(__FILE__, __LINE__); - ex.message = dx.what(); - throw ex; + if(dx.get_errno() == DB_BUFFER_SMALL) + { + handleMemoryException(dx, value, dbValue); + } + else + { + throw dx; + } } } |