@Override public void onFailedBlock() { parent.failedBlock(context); }
/** A block failed. Count it and notify our clients. */ public void failedBlock(ClientContext context) { failedBlock(false, context); }
@Override public void onResume(int succeededBlocks, int failedBlocks, ClientMetadata meta, long finalSize) { for(int i=0;i<succeededBlocks-1;i++) parent.completedBlock(true, context); if(succeededBlocks > 0) parent.completedBlock(false, context); for(int i=0;i<failedBlocks-1;i++) parent.failedBlock(true, context); if(failedBlocks > 0) parent.failedBlock(false, context); parent.blockSetFinalized(context); try { cb.onExpectedMIME(meta, context); } catch (FetchException e) { fail(e); return; } cb.onExpectedSize(finalSize, context); }
protected void onFailure(FetchException e, boolean forceFatal, ClientContext context) { if(logMINOR) Logger.minor(this, "onFailure( "+e+" , "+forceFatal+")", e); if(parent.isCancelled() || cancelled) { if(logMINOR) Logger.minor(this, "Failing: cancelled"); e = new FetchException(FetchExceptionMode.CANCELLED); forceFatal = true; } if(!(e.isFatal() || forceFatal) ) { if(retry(context)) { if(logMINOR) Logger.minor(this, "Retrying"); return; } } // :( unregisterAll(context); synchronized(this) { finished = true; } if(e.isFatal() || forceFatal) parent.fatallyFailedBlock(context); else parent.failedBlock(context); rcb.onFailure(e, this, context); }