apache/hadoop · error · AlreadyClosedException
compress called on closed compressor
Error message
compress called on closed compressor
What it means
Error "compress called on closed compressor" thrown in apache/hadoop.
Source
Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/BuiltInGzipCompressor.java:88
@Override
public boolean finished() {
// Only if the trailer is also written, it is thought as finished.
return state == BuiltInGzipDecompressor.GzipStateLabel.FINISHED && deflater.finished();
}
@Override
public boolean needsInput() {
return deflater.needsInput() && state != BuiltInGzipDecompressor.GzipStateLabel.TRAILER_CRC;
}
@Override
public int compress(byte[] b, int off, int len) throws IOException {
if (finished()) {
throw new IOException("compress called on finished compressor");
}
if (state == BuiltInGzipDecompressor.GzipStateLabel.ENDED) {
throw new AlreadyClosedException("compress called on closed compressor");
}
int compressedBytesWritten = 0;
// If we are not within uncompressed data yet, output the header.
if (state == BuiltInGzipDecompressor.GzipStateLabel.HEADER_BASIC) {
int outputHeaderSize = writeHeader(b, off, len);
numExtraBytesWritten += outputHeaderSize;
compressedBytesWritten += outputHeaderSize;
if (outputHeaderSize == len) {
return compressedBytesWritten;
}
off += outputHeaderSize;
len -= outputHeaderSize;
}View on GitHub (pinned to 2add963021)
Solutions
- Do not call compress() after close(); create a new BuiltInGzipCompressor if compression must resume.
- Guard compress calls with a state check or try/finally so close() runs only after all compress() calls complete.
When it happens
Trigger: Thrown at hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/BuiltInGzipCompressor.java:88 when the library encounters an invalid state.
Common situations: Occurs when compress() is called after the compressor has been closed. Check the closed flag before use and do not reuse a compressor after close(); create a new instance instead.
AI-assisted analysis of apache/hadoop@2add963021 (2026-08-22).
Data as JSON: /api/errors/5856267b733a0fee.
Report an issue: GitHub.