snappy-java 1.1.9.0 Can't work with Java 8
LuciferYang opened this issue · comments
I wrote a simple demo to reproduce this issue, the demo is in https://github.com/LuciferYang/snappy-java-test
The test code as follows:
@Test
public void testCompress() throws IOException {
ByteBuffer src = ByteBuffer.allocateDirect(1024);
src.put("hello world".getBytes());
src.flip();
ByteBuffer dest = ByteBuffer.allocateDirect(1024);
int maxCompressedLen = Snappy.compress(src, dest);
Assert.assertEquals(maxCompressedLen, 13);
}
run the above case with zulu 8u352
java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (Zulu 8.66.0.15-CA-macos-aarch64) (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (Zulu 8.66.0.15-CA-macos-aarch64) (build 25.352-b08, mixed mode)
run mvn clean test -Dsnappy-java.version=1.1.8.4
with Java 8 will pass
run mvn clean test -Dsnappy-java.version=1.1.9.0
with Java 8 will failed as follows:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.example.SnappyJavaTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.374 sec <<< FAILURE!
testCompress(org.example.SnappyJavaTest) Time elapsed: 0.345 sec <<< ERROR!
java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer;
at org.xerial.snappy.Snappy.compress(Snappy.java:157)
at org.example.SnappyJavaTest.testCompress(SnappyJavaTest.java:17)
run mvn clean test -Dsnappy-java.version=1.1.9.0
with Java 11 will pass
cc @dongjoon-hyun I create a issue for snappy-java 1.1.9.0 run with Java 8
I'm not sure whether this is unexpected. Let's wait for @xerial
Ok. It hits a well-known issue of ByteBuffer incompatibility between JDK8 and later #390
Releasing https://github.com/xerial/snappy-java/releases/tag/v1.1.9.1 with a fix for this
Thank you, @LuciferYang and @xerial .