diff options
author | Arne Juul <arnej@vespa.ai> | 2023-10-27 12:34:04 +0000 |
---|---|---|
committer | Arne Juul <arnej@vespa.ai> | 2023-10-27 12:34:04 +0000 |
commit | 89cd64ffb26732a884b3051e66e275aad1698c00 (patch) | |
tree | cdb468d8d6dfd51b1eeaf1e2141a91cc638134c1 /vespajlib | |
parent | ec1c22c585fc18167e08b4f095431c98def5229b (diff) |
create ZstdCompressor on demand for thread-safety
Diffstat (limited to 'vespajlib')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/compress/Compressor.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java index 1a9078e640e..1aca29cd21b 100644 --- a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java +++ b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java @@ -19,7 +19,6 @@ import java.util.Random; */ public class Compressor { - private final ZstdCompressor zstdCompressor = new ZstdCompressor(); private final CompressionType type; private final int level; private final double compressionThresholdFactor; @@ -101,6 +100,7 @@ public class Compressor { if (len < compressMinSizeBytes) { return compact(CompressionType.INCOMPRESSIBLE, data, offset, len); } + ZstdCompressor zstdCompressor = new ZstdCompressor(); byte[] compressed = zstdCompressor.compress(data, offset, len); return new Compression(CompressionType.ZSTD, len, compressed); default: @@ -151,6 +151,7 @@ public class Compressor { return uncompressedLZ4Data; case ZSTD: int compressedLength = expectedCompressedSize.orElseThrow(() -> new IllegalArgumentException("Zstd decompressor requires input size")); + ZstdCompressor zstdCompressor = new ZstdCompressor(); byte[] decompressedData = zstdCompressor.decompress(compressedData, compressedDataOffset, compressedLength); expectedCompressedSize.ifPresent(expectedSize -> { if (compressedData.length != expectedSize) { |