@Override public Bucket createShadow() { Bucket undershadow = underlying.createShadow(); AEADCryptBucket ret = new AEADCryptBucket(undershadow, key); ret.setReadOnly(); return ret; }
private BlockItem getBlockItem(ObjectContainer container, ClientContext context) { try { synchronized (this) { if (finished) return null; } if (persistent) { if (sourceData == null) { Logger.error( this, "getBlockItem(): sourceData = null but active = " + container.ext().isActive(this)); return null; } } boolean deactivateBucket = false; if (persistent) { container.activate(uri, 1); deactivateBucket = !container.ext().isActive(sourceData); if (deactivateBucket) container.activate(sourceData, 1); } Bucket data = sourceData.createShadow(); FreenetURI u = uri; if (u.getKeyType().equals("CHK") && !persistent) u = FreenetURI.EMPTY_CHK_URI; else u = u.clone(); if (data == null) { data = context.tempBucketFactory.makeBucket(sourceData.size()); BucketTools.copy(sourceData, data); } if (persistent) { if (deactivateBucket) container.deactivate(sourceData, 1); container.deactivate(uri, 1); } return new BlockItem( this, data, isMetadata, compressionCodec, sourceLength, u, hashCode(), persistent); } catch (IOException e) { fail(new InsertException(InsertException.BUCKET_ERROR, e, null), container, context); return null; } }
public Bucket createShadow() throws IOException { return bucket.createShadow(); }