mirror of
https://github.com/danieldemus/openhab-core.git
synced 2025-01-10 21:31:53 +01:00
648cfac66d
Incompatible code can be used/generated when using JDK8 on the command line and JDK11 in Eclipse (or vice versa). The explanation for this is given in https://github.com/apache/felix/pull/114 : Java 9 introduces overridden methods with covariant return types for the following methods in java.nio.ByteBuffer: * position(int newPosition) * limit(int newLimit) * flip() * clear() * mark() * reset() * rewind() In Java 9 they all now return ByteBuffer, whereas the methods they override return Buffer, resulting in exceptions like this when executing on Java 8 and lower: java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer This is because the generated byte code includes the static return type of the method, which is not found on Java 8 and lower because the overloaded methods with covariant return types don't exist (the issue appears even with source and target 8 or lower in compilation parameters). The solution is to cast ByteBuffer instances to Buffer before calling the method. Signed-off-by: Wouter Born <github@maindrain.net> |
||
---|---|---|
.. | ||
src/main | ||
.classpath | ||
.project | ||
itest.bndrun | ||
NOTICE | ||
pom.xml |