private PutHandler(final BaseManifestPutter bmp, PutHandler parent, String name, String nameInArchive, Metadata md, ClientMetadata cm) { super(bmp.priorityClass, bmp.cb); this.persistent = bmp.persistent(); this.cm = cm; this.itemName = name; this.origSFI = null; metadata = md; parentPutHandler = parent; this.targetInArchive = nameInArchive; }
private PutHandler(final BaseManifestPutter bmp, PutHandler parent, String name, ClientMetadata cm, HashSet<PutHandler> runningMap) { super(bmp.priorityClass, bmp.cb); this.persistent = bmp.persistent(); this.cm = cm; this.itemName = name;
/** * Start a new-style site insert. Schedule a job on the database thread if it is persistent, * otherwise start it immediately. * @param inserter The request to start. * @throws InsertException If the insert is transient and failed to start. * @throws DatabaseDisabledException If the insert is persistent and the database is disabled. */ public void start(final BaseManifestPutter inserter) throws InsertException, PersistenceDisabledException { if(inserter.persistent()) { jobRunner.queue(new PersistentJob() { @Override public boolean run(ClientContext context) { try { inserter.start(context); } catch (InsertException e) { inserter.cb.onFailure(e, inserter); } return true; } }, NativeThread.NORM_PRIORITY); } else { inserter.start(this); } }
/** * Start inserts for unresolved (too big) Metadata's. Eventually these will call back with an onEncode(), * meaning they have the CHK, and we can progress to resolveAndStartBase(). * @param e * @param container * @param context * @return * @throws InsertException * @throws IOException */ private void resolve(MetadataUnresolvedException e, ClientContext context) throws InsertException, IOException { new Error("RefactorME-resolve").printStackTrace(); Metadata[] metas = e.mustResolve; for(Metadata m: metas) { if(logMINOR) Logger.minor(this, "Resolving "+m); if(m.isResolved()) { Logger.error(this, "Already resolved: "+m+" in resolve() - race condition???"); continue; } try { MetaPutHandler ph = new MetaPutHandler(this, null, m, context.getBucketFactory(persistent())); ph.start(context); } catch (MetadataUnresolvedException e1) { resolve(e1, context); } } }
public void start(ClientContext context) throws InsertException { if (logMINOR) Logger.minor(this, "Starting " + this+" persistence="+persistent()+ " containermode="+containerMode); PutHandler[] running; PutHandler[] containers;
bucket = baseMetadata.toBucket(context.getBucketFactory(persistent())); if(logMINOR) Logger.minor(this, "Metadata bucket is "+bucket.size()+" bytes long");