@Override public boolean run(ClientContext context) { get.onFailure(e, null, clientContext); return false; } @Override
@Override public boolean run(ClientContext context) { try { ((SendableGet) request).onFailure(e, token, context); } finally { sched.removeFetchingKey(key); } // Something might be waiting for a request to complete (e.g. if we have two requests for the same key), // so wake the starter thread. sched.wakeStarter(); return false; }
@Override public void callFailure(final SendableGet get, final LowLevelGetException e, int prio, boolean persistent) { if(!persistent) { get.onFailure(e, null, clientContext); } else { try { jobRunner.queue(new PersistentJob() { @Override public boolean run(ClientContext context) { get.onFailure(e, null, clientContext); return false; } @Override public String toString() { return "SendableGet onFailure"; } }, prio); } catch (PersistenceDisabledException e1) { Logger.error(this, "callFailure() on a persistent request but database disabled", new Exception("error")); } } }
@Override public boolean run(ClientContext context) { try { scheduler.finishRegister(new SendableGet[] { get }, true, valid); } catch (Throwable t) { Logger.error(this, "Failed to register "+get+": "+t, t); try { get.onFailure(new LowLevelGetException(LowLevelGetException.INTERNAL_ERROR, "Internal error: "+t, t), null, context); } catch (Throwable t1) { Logger.error(this, "Failed to fail: "+t, t); } } return false; }