[ https://issues.apache.org/jira/browse/HTTPCORE-737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706495#comment-17706495 ]
Arun Katkere commented on HTTPCORE-737: --------------------------------------- [~olegk] if you build and test with Java 1.8 it does work fine (which is what the Jenkins build 197 you linked below is doing). The issue is when the official builds are made using a newer Java and you are expecting it to *run* on Java 8 since you have these in your pom.xml: {code:java} <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> {code} The reported issue also needs this in your pom.xml: {code:java} <maven.compiler.release>8</maven.compiler.release> {code} > HttpClient not working with Java 8 runtime > ------------------------------------------ > > Key: HTTPCORE-737 > URL: https://issues.apache.org/jira/browse/HTTPCORE-737 > Project: HttpComponents HttpCore > Issue Type: Bug > Components: HttpCore > Affects Versions: 5.2.1 > Reporter: Arun Katkere > Priority: Major > > When we try to run HttpClient 5.2.1 with Java 8 runtime, it fails with: > > {{java.lang.NoSuchMethodError: > java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;}} > {{at org.apache.hc.core5.net.PercentCodec.decode(PercentCodec.java:155)}} > {{at org.apache.hc.core5.net.PercentCodec.decode(PercentCodec.java:160)}} > {{at org.apache.hc.core5.net.URIBuilder.parsePath(URIBuilder.java:277)}} > {{at org.apache.hc.core5.net.URIBuilder.digestURI(URIBuilder.java:407)}} > {{at org.apache.hc.core5.net.URIBuilder.<init>(URIBuilder.java:134)}} > {{at org.apache.hc.core5.net.URIBuilder.<init>(URIBuilder.java:106)}} > {{at > org.apache.hc.client5.http.impl.RequestSupport.extractPathPrefix(RequestSupport.java:49)}} > {{at > org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:152)}} > {{at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)}} > {{at > org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96)}} > {{at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)}} > {{at > org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152)}} > {{at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)}} > {{at > org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:115)}} > {{at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)}} > {{at > org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170)}} > {{at > org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:123)}} > > It runs fine in a Java 11 runtime. > > Java 8 java.nio.ByteBuffer does not define “{{{}java.nio.ByteBuffer > flip({}}})” method. Instead it just inherits “{{{}java.nio.Buffer flip(){}}}” > from its super class. However, Java 9 and newer versions have the additional > flip method. I believe if pom.xml contains > {{<maven.compiler.release>8</maven.compiler.release>}} it should fix this > issue. Alternatively, this component can be built with Java 8. > According to the documentation > [https://hc.apache.org/httpcomponents-client-5.2.x/quickstart.html] > "HttpClient 5.2 requires Java 1.8 or newer." so the expectation here is that > it works with Java 1.8/8 runtime. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org