From 95b894e6f625b1e9bb2ed1fd2abb8f0ee7224727 Mon Sep 17 00:00:00 2001 From: Shay Banon Date: Fri, 6 Sep 2013 00:41:14 +0200 Subject: [PATCH] On Solaris, default LZF compress type (for transport) can cause segfault closes #3634 --- .../elasticsearch/common/compress/lzf/LZFCompressor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/elasticsearch/common/compress/lzf/LZFCompressor.java b/src/main/java/org/elasticsearch/common/compress/lzf/LZFCompressor.java index 692ce35a876..0ab9381cbca 100644 --- a/src/main/java/org/elasticsearch/common/compress/lzf/LZFCompressor.java +++ b/src/main/java/org/elasticsearch/common/compress/lzf/LZFCompressor.java @@ -24,6 +24,7 @@ import com.ning.compress.lzf.LZFChunk; import com.ning.compress.lzf.LZFEncoder; import com.ning.compress.lzf.util.ChunkDecoderFactory; import org.apache.lucene.store.IndexInput; +import org.apache.lucene.util.Constants; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.compress.CompressedIndexInput; import org.elasticsearch.common.compress.CompressedStreamInput; @@ -48,7 +49,11 @@ public class LZFCompressor implements Compressor { private ChunkDecoder decoder; public LZFCompressor() { - this.decoder = ChunkDecoderFactory.optimalInstance(); + if (Constants.SUN_OS) { + this.decoder = ChunkDecoderFactory.safeInstance(); + } else { + this.decoder = ChunkDecoderFactory.optimalInstance(); + } Loggers.getLogger(LZFCompressor.class).debug("using [{}] decoder", this.decoder.getClass().getSimpleName()); }