Mario Salazar de Torres created GEODE-8830: ----------------------------------------------
Summary: Exceptions not correctly re-thrown in the tx manager Key: GEODE-8830 URL: https://issues.apache.org/jira/browse/GEODE-8830 Project: Geode Issue Type: Bug Components: native client Affects Versions: 1.13.1, 1.13.0, 1.12.0 Reporter: Mario Salazar de Torres Under several transactional scenarios exceptions are converted from its more specific type to *Exception* type within the internal code of the native client. The scenarios are the following ones: # Whenever a transaction commit conflicts the native client user would expect a *CommitConflictException*, but instead the user can only catch an exception of type *Exception*. # Whenever a transaction prepare conflicts the native client user would expect a *CommitConflictException*, but instead the user can only catch an exception of type *Exception*. # Whenever rollback/prepare/commit is executed with no transaction ongoing the native client user would expect an *IllegalStateException*, but instead the user can only catch an exception of type *Exception*. ---- *Example:* {code:c++} auto tx_manager = cache.getCacheTransactionManager(); // First transaction starts here tx_manager->begin(); region->put("key", "A"); // First transaction is suspended before doing the commit auto& tx_id = txm->suspend(); // Second transaction starts here tx_manager->begin(); region->put("key", "B"); tx_manager->commit(); // After successfully committing the second transaction, the first transaction is resumed tx_manager->resume(tx_id); try { tx_manager->commit(); } catch(CommitConflictException& ex) { // This is what should be in the output in this example std::cerr << "A conflict occurred while committing the transaction!" << std::endl; } catch(Exception& ex) { // However, as there is some issue with exception handling, this is what's currently shown std::cerr << "An unknown exception occurred while committing the transaction!" << std::endl; }{code} -- This message was sent by Atlassian Jira (v8.3.4#803005)