@Override public Result call(RegionObserver observer) throws IOException { return observer.preAppend(this, append); } });
@Override public Result preAppend(ObserverContext<RegionCoprocessorEnvironment> c, Append append) throws IOException { return delegate.preAppend(c, append); }
@Override public Result preAppend(ObserverContext<RegionCoprocessorEnvironment> c, Append append) throws IOException { return delegate.preAppend(c, append); }
@Override public Result preAppend(ObserverContext<RegionCoprocessorEnvironment> c, Append append) throws IOException { return delegate.preAppend(c, append); }
@Override public void call(RegionObserver oserver, ObserverContext<RegionCoprocessorEnvironment> ctx) throws IOException { setResult(oserver.preAppend(ctx, append)); } });
@Override public Result preAppend(ObserverContext<RegionCoprocessorEnvironment> c, Append append) throws IOException { if(LOG.isDebugEnabled()) { LOG.debug("==> HBaseAtlasCoprocessor.preAppend()"); } final Result ret; try { activatePluginClassLoader(); ret = implRegionObserver.preAppend(c, append); } finally { deactivatePluginClassLoader(); } if(LOG.isDebugEnabled()) { LOG.debug("<== HBaseAtlasCoprocessor.preAppend()"); } return ret; }
/** * @param append append object * @return result to return to client if default operation should be * bypassed, null otherwise * @throws IOException if an error occurred on the coprocessor */ public Result preAppend(Append append) throws IOException { boolean bypass = false; Result result = null; ObserverContext<RegionCoprocessorEnvironment> ctx = null; for (RegionEnvironment env: coprocessors) { if (env.getInstance() instanceof RegionObserver) { ctx = ObserverContext.createAndPrepare(env, ctx); try { result = ((RegionObserver)env.getInstance()).preAppend(ctx, append); } catch (Throwable e) { handleCoprocessorThrowable(env, e); } bypass |= ctx.shouldBypass(); if (ctx.shouldComplete()) { break; } } } return bypass ? result : null; }