@Override public LockableRandomAccessBuffer toRandomAccessBuffer() throws IOException { synchronized(this) { if(freed) throw new IOException("Already freed"); } setReadOnly(); return new DelayedFreeRandomAccessBuffer(bucket.toRandomAccessBuffer(), factory); }
@Override public LockableRandomAccessBuffer toRandomAccessBuffer() throws IOException { synchronized(this) { if(outputStreamOpen) throw new IOException("Must close first"); readOnly = true; } underlying.setReadOnly(); LockableRandomAccessBuffer u = underlying.toRandomAccessBuffer(); return new PaddedRandomAccessBuffer(u, size); }
@Override public LockableRandomAccessBuffer toRandomAccessBuffer() throws IOException { if(underlying.size() < type.headerLen) throw new IOException("Converting empty bucket"); underlying.setReadOnly(); LockableRandomAccessBuffer r = underlying.toRandomAccessBuffer(); try { return new EncryptedRandomAccessBuffer(type, r, masterKey, false); } catch (GeneralSecurityException e) { Logger.error(this, "Unable to convert encrypted bucket: "+e, e); throw new IOException(e); } }
@Override public LockableRandomAccessBuffer toRandomAccessBuffer() throws IOException { synchronized(this) { if(hasBeenFreed) throw new IOException("Already freed"); if(os != null) throw new IOException("Can't migrate with open OutputStream's"); if(!tbis.isEmpty()) throw new IOException("Can't migrate with open InputStream's"); setReadOnly(); TempRandomAccessBuffer raf = new TempRandomAccessBuffer(currentBucket.toRandomAccessBuffer(), creationTime, !isRAMBucket(), this); if(isRAMBucket()) { synchronized(ramBucketQueue) { // No change in space usage. ramBucketQueue.remove(getReference()); ramBucketQueue.add(raf.getReference()); } } currentBucket = new RAFBucket(raf); return raf; } }
moved += readBytes; LockableRandomAccessBuffer raf = bucket.toRandomAccessBuffer(); assertEquals(length, raf.size()); RAFBucket wrapped = new RAFBucket(raf);
dataRAF = data.toRandomAccessBuffer(); } catch (IOException e) { throw new InsertException(InsertExceptionMode.BUCKET_ERROR, e, null);