diff options
author | Bernard Normier <bernard@zeroc.com> | 2012-08-13 15:06:26 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2012-08-13 15:06:26 -0400 |
commit | dc3edd400554edca4abb6fe73723036ed23b49d5 (patch) | |
tree | 1e38cfcb8be68e8aece9e3e661c91bf974578c67 /cpp/src | |
parent | c++11 minor method renaming (diff) | |
download | ice-dc3edd400554edca4abb6fe73723036ed23b49d5.tar.bz2 ice-dc3edd400554edca4abb6fe73723036ed23b49d5.tar.xz ice-dc3edd400554edca4abb6fe73723036ed23b49d5.zip |
Fixed bug #ICE-4848: transactional evictor bug when receiving operation that does not exist. Added test.
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Freeze/TransactionalEvictorI.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp index 27cae3e8282..5d984a5cf4f 100644 --- a/cpp/src/Freeze/TransactionalEvictorI.cpp +++ b/cpp/src/Freeze/TransactionalEvictorI.cpp @@ -422,7 +422,12 @@ Freeze::TransactionalEvictorI::dispatch(Request& request) assert(sample != 0); int operationAttributes = sample->ice_operationAttributes(current.operation); - + + if(operationAttributes < 0) + { + throw OperationNotExistException(__FILE__, __LINE__); + } + bool readOnly = (operationAttributes & 0x1) == 0; int txMode = (operationAttributes & 0x6) >> 1; @@ -467,6 +472,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& request) default: { assert(0); + throw OperationNotExistException(__FILE__, __LINE__); } } |