TmpFileSegmentWriteOutMedium(File outDir) throws IOException { File tmpOutputFilesDir = new File(outDir, "tmpOutputFiles"); FileUtils.forceMkdir(tmpOutputFilesDir); closer.register(() -> FileUtils.deleteDirectory(tmpOutputFilesDir)); this.dir = tmpOutputFilesDir; }
@Override public WriteOutBytes makeWriteOutBytes() throws IOException { File file = File.createTempFile("filePeon", null, dir); FileChannel ch = FileChannel.open( file.toPath(), StandardOpenOption.READ, StandardOpenOption.WRITE ); closer.register(file::delete); closer.register(ch); return new FileWriteOutBytes(file, ch); }
@Override public WriteOutBytes makeWriteOutBytes() { DirectByteBufferWriteOutBytes writeOutBytes = new DirectByteBufferWriteOutBytes(); closer.register(writeOutBytes::free); return writeOutBytes; }
@Override ByteBuffer allocateInBuffer(int inputSize, Closer closer) { ByteBuffer inBuffer = ByteBuffer.allocateDirect(inputSize); closer.register(() -> ByteBufferUtils.free(inBuffer)); return inBuffer; }
public CloseableGrouperIterator( final Grouper<KeyType> grouper, final boolean sorted, final Function<Grouper.Entry<KeyType>, T> transformer, final Closeable closeable ) { this.transformer = transformer; this.iterator = grouper.iterator(sorted); this.closer = Closer.create(); closer.register(iterator); closer.register(closeable); }
@Override public void close() throws IOException { Closer closer = Closer.create(); while (!pQueue.isEmpty()) { closer.register(pQueue.remove()); } closer.close(); } };
public <T extends Closeable> T closeLater(final T closeable) { closer.register(new Closeable() { @Override public void close() throws IOException { if (throwException) { closeable.close(); } else { try { closeable.close(); } catch (IOException e) { LOG.warn(e, "Error closing [%s]", closeable); } } } }); return closeable; } }
@Override ByteBuffer allocateOutBuffer(int inputSize, Closer closer) { ByteBuffer outBuffer = ByteBuffer.allocateDirect(lz4High.maxCompressedLength(inputSize)); closer.register(() -> ByteBufferUtils.free(outBuffer)); return outBuffer; }
private void closeAggregators() { Closer closer = Closer.create(); for (Aggregator[] aggs : aggregators.values()) { for (Aggregator agg : aggs) { closer.register(agg); } } try { closer.close(); } catch (IOException e) { Throwables.propagate(e); } }
/** * Returns an input stream for a s3 object. The returned input stream is not thread-safe. */ @Override public InputStream openInputStream() throws IOException { try { if (s3Object == null) { // lazily promote to full GET s3Object = s3Client.getObject(objectSummary.getBucketName(), objectSummary.getKey()); } final InputStream in = s3Object.getObjectContent(); final Closer closer = Closer.create(); closer.register(in); closer.register(s3Object); return new FilterInputStream(in) { @Override public void close() throws IOException { closer.close(); } }; } catch (AmazonServiceException e) { throw new IOE(e, "Could not load S3 URI [%s]", uri); } }
@LifecycleStop public void stop() throws IOException { synchronized (lock) { if (childrenCache == null) { return; } // This close() call actually calls shutdownNow() on the executor registered with the Cache object... childrenCache.close(); childrenCache = null; } Closer closer = Closer.create(); for (ContainerHolder containerHolder : containers.values()) { closer.register(containerHolder.getCache()); } try { closer.close(); } finally { pathChildrenCacheExecutor.shutdown(); } }
@Override public ColumnValueSelector<?> makeColumnValueSelector(String columnName) { if (virtualColumns.exists(columnName)) { return virtualColumns.makeColumnValueSelector(columnName, this); } BaseColumn column = columnCache.computeIfAbsent(columnName, name -> { ColumnHolder holder = index.getColumnHolder(name); if (holder != null) { return closer.register(holder.getColumn()); } else { return null; } }); if (column != null) { return column.makeColumnValueSelector(offset); } else { return NilColumnValueSelector.instance(); } }
@Parameterized.Parameters(name = "{0}") public static Collection<?> constructorFeeder() { final List<Object[]> constructors = new ArrayList<>(); for (GroupByQueryConfig config : testConfigs()) { final Pair<GroupByQueryRunnerFactory, Closer> factoryAndCloser = makeQueryRunnerFactory(config); final GroupByQueryRunnerFactory factory = factoryAndCloser.lhs; resourceCloser.register(factoryAndCloser.rhs); for (QueryRunner<Row> runner : QueryRunnerTestHelper.makeQueryRunners(factory)) { final String testName = StringUtils.format( "config=%s, runner=%s", config.toString(), runner.toString() ); constructors.add(new Object[]{testName, config, factory, runner}); } } return constructors; }
BaseColumn col = columnHolder.getColumn(); if (col instanceof DictionaryEncodedColumn) { return closer.register(col); } else {