[Coprocessors] Observer notifications on exceptions
---------------------------------------------------
Key: HBASE-5827
URL: https://issues.apache.org/jira/browse/HBASE-5827
Project: HBase
Issue Type: Improvement
Components: coprocessors
Reporter: Andrew Purtell
Benjamin Busjaeger wrote on dev@:
{quote}
Is there a reason that RegionObservers are not notified when a get/put/delete
fails? Suppose I maintain some (transient) state in my Coprocessor that is
created during preGet and discarded during postGet. If the get fails, postGet
is not invoked, so I cannot remove the state.
If there is a good reason, is there any other way to achieve the same thing? If
not, would it be possible to add something the snippet below to the code base?
{code}
// pre-get CP hook
if (withCoprocessor && (coprocessorHost != null)) {
if (coprocessorHost.preGet(get, results)) {
return results;
}
}
+ try{
...
+ } catch (Throwable t) {
+ // failed-get CP hook
+ if (withCoprocessor && (coprocessorHost != null)) {
+ coprocessorHost.failedGet(get, results);
+ }
+ rethrow t;
+ }
// post-get CP hook
if (withCoprocessor && (coprocessorHost != null)) {
coprocessorHost.postGet(get, results);
}
{code}
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira