Package: libhttpclient-java
Version: 4.5.6-1
Severity: important
Dear Maintainer,
The parsing functionality under URLEncodedUtils fails when running under Java 8.
This seems to be due to the return type of java.nio.ByteBuffer.flip() having
changed (covariant), so that the bytecodes of 11 and 8 are not compatible.
I stumbled upon this when trying to use Maven from the Debian repository in a
Java 8 project, but here's a minimal NWE:
import java.net.URI;
import java.nio.charset.StandardCharsets;
import org.apache.http.client.utils.URLEncodedUtils;
public class UrlParsing {
public static void main(String[] args) {
URLEncodedUtils.parse("http://example.com/?key=value",
StandardCharsets.US_ASCII);
}
}
yields the following:
Exception in thread "main" java.lang.NoSuchMethodError:
java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
at
org.apache.http.client.utils.URLEncodedUtils.urlDecode(URLEncodedUtils.java:590)
at
org.apache.http.client.utils.URLEncodedUtils.decodeFormFields(URLEncodedUtils.java:619)
at
org.apache.http.client.utils.URLEncodedUtils.parse(URLEncodedUtils.java:316)
at
org.apache.http.client.utils.URLEncodedUtils.parse(URLEncodedUtils.java:249)
at UrlParsing.main(UrlParsing.java:7)
Br,
Timo
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8),
LANGUAGE= (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages libhttpclient-java depends on:
ii libcommons-codec-java 1.11-1
ii libcommons-logging-java 1.2-2
ii libhttpcore-java 4.4.10-1
libhttpclient-java recommends no packages.
libhttpclient-java suggests no packages.
-- no debconf information