You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Gary Gregory <ga...@gmail.com> on 2018/07/09 18:55:57 UTC

[HttpClient] Problem updating from HttpClient 4.5.5 to 4.5.6

When I update our application at work from 4.5.5 to 4.5.6, this happens and
breaks the app:

2018-07-09 12:47:45,862 INFO  [main][o.m.d.connection] Opened connection
[connectionId{localValue:2, serverValue:2}] to localhost:1106
Exception in thread "HMP-ListeningIoReactor-1" java.lang.NoSuchMethodError:
java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
at
org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
at
org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
at
org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
at
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
at
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
at
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
at java.lang.Thread.run(Unknown Source)
2018-07-09 12:47:46,072 ERROR
[com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1][c.r.s.h.NHttpReverseProxy]
Exception caught in com.rs.seagull.httpmonitor.NHttpReverseProxy:
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
terminated abnormally
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
terminated abnormally
at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
com.rs.seagull.httpmonitor.NHttpReverseProxy.init(NHttpReverseProxy.java:2208)
~[classes/:?]
at
com.rs.seagull.httpmonitor.NHttpReverseProxy.goLoop(NHttpReverseProxy.java:2012)
~[classes/:?]
at
com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1.lambda$0(NHttpReverseProxyTestRule.java:133)
~[test-classes/:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
Caused by: java.lang.NoSuchMethodError:
java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
at
org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
~[httpcore-nio-4.4.10.jar:4.4.10]
at
org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
~[httpcore-nio-4.4.10.jar:4.4.10]
... 1 more

The app has already been updated from HttpCore 4.4.9 to 4.4.10 without code
changes. The app is built on Java 8.

*Nothing else* is changed aside from changing the Maven property
for httpclient from 4.5.5 to 4.5.6.

According to https://github.com/plasma-umass/doppio/issues/497, this can be
fixed with a class cast in
org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)

The link suggests that this happens when you use Java 9 or later to build.
What version was used to build 4.5.6?

Thank you,
Gary

Re: [HttpClient] Problem updating from HttpClient 4.5.5 to 4.5.6

Posted by Gary Gregory <ga...@gmail.com>.
Moral of the story: Don't build with Java 9 unless you are going to run on
Java 9 or greater. What a mess!

Gary

On Mon, Jul 9, 2018 at 1:10 PM Gary Gregory <ga...@gmail.com> wrote:

> Update: The problem is that HttpCore 4.4.10 was build with Java 9 by me
> locally when I validated RC1! Wow!
>
> Gary
>
> On Mon, Jul 9, 2018 at 12:55 PM Gary Gregory <ga...@gmail.com>
> wrote:
>
>> When I update our application at work from 4.5.5 to 4.5.6, this happens
>> and breaks the app:
>>
>> 2018-07-09 12:47:45,862 INFO  [main][o.m.d.connection] Opened connection
>> [connectionId{localValue:2, serverValue:2}] to localhost:1106
>> Exception in thread "HMP-ListeningIoReactor-1"
>> java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
>> at
>> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
>> at
>> org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
>> at
>> org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
>> at
>> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
>> at
>> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
>> at
>> org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
>> at
>> org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
>> at
>> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
>> at
>> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
>> at java.lang.Thread.run(Unknown Source)
>> 2018-07-09 12:47:46,072 ERROR
>> [com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1][c.r.s.h.NHttpReverseProxy]
>> Exception caught in com.rs.seagull.httpmonitor.NHttpReverseProxy:
>> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
>> terminated abnormally
>> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
>> terminated abnormally
>> at
>> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> com.rs.seagull.httpmonitor.NHttpReverseProxy.init(NHttpReverseProxy.java:2208)
>> ~[classes/:?]
>> at
>> com.rs.seagull.httpmonitor.NHttpReverseProxy.goLoop(NHttpReverseProxy.java:2012)
>> ~[classes/:?]
>> at
>> com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1.lambda$0(NHttpReverseProxyTestRule.java:133)
>> ~[test-classes/:?]
>> at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
>> Caused by: java.lang.NoSuchMethodError:
>> java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
>> at
>> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> at
>> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
>> ~[httpcore-nio-4.4.10.jar:4.4.10]
>> ... 1 more
>>
>> The app has already been updated from HttpCore 4.4.9 to 4.4.10 without
>> code changes. The app is built on Java 8.
>>
>> *Nothing else* is changed aside from changing the Maven property
>> for httpclient from 4.5.5 to 4.5.6.
>>
>> According to https://github.com/plasma-umass/doppio/issues/497, this can
>> be fixed with a class cast in
>> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
>>
>> The link suggests that this happens when you use Java 9 or later to
>> build. What version was used to build 4.5.6?
>>
>> Thank you,
>> Gary
>>
>>

Re: [HttpClient] Problem updating from HttpClient 4.5.5 to 4.5.6

Posted by Gary Gregory <ga...@gmail.com>.
Update: The problem is that HttpCore 4.4.10 was build with Java 9 by me
locally when I validated RC1! Wow!

Gary

On Mon, Jul 9, 2018 at 12:55 PM Gary Gregory <ga...@gmail.com> wrote:

> When I update our application at work from 4.5.5 to 4.5.6, this happens
> and breaks the app:
>
> 2018-07-09 12:47:45,862 INFO  [main][o.m.d.connection] Opened connection
> [connectionId{localValue:2, serverValue:2}] to localhost:1106
> Exception in thread "HMP-ListeningIoReactor-1"
> java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
> at
> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
> at
> org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
> at
> org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
> at
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
> at
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
> at
> org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
> at
> org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
> at
> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
> at
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
> at java.lang.Thread.run(Unknown Source)
> 2018-07-09 12:47:46,072 ERROR
> [com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1][c.r.s.h.NHttpReverseProxy]
> Exception caught in com.rs.seagull.httpmonitor.NHttpReverseProxy:
> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
> terminated abnormally
> org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker
> terminated abnormally
> at
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> com.rs.seagull.httpmonitor.NHttpReverseProxy.init(NHttpReverseProxy.java:2208)
> ~[classes/:?]
> at
> com.rs.seagull.httpmonitor.NHttpReverseProxy.goLoop(NHttpReverseProxy.java:2012)
> ~[classes/:?]
> at
> com.rs.seagull.httpmonitor.test.NHttpReverseProxyTestRule$1.lambda$0(NHttpReverseProxyTestRule.java:133)
> ~[test-classes/:?]
> at java.lang.Thread.run(Unknown Source) [?:1.8.0_172]
> Caused by: java.lang.NoSuchMethodError:
> java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;
> at
> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.nio.util.ExpandableBuffer.hasData(ExpandableBuffer.java:169)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:299)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:243)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.DefaultHttpServerIODispatch.onInputReady(DefaultHttpServerIODispatch.java:57)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> at
> org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
> ~[httpcore-nio-4.4.10.jar:4.4.10]
> ... 1 more
>
> The app has already been updated from HttpCore 4.4.9 to 4.4.10 without
> code changes. The app is built on Java 8.
>
> *Nothing else* is changed aside from changing the Maven property
> for httpclient from 4.5.5 to 4.5.6.
>
> According to https://github.com/plasma-umass/doppio/issues/497, this can
> be fixed with a class cast in
> org.apache.http.nio.util.ExpandableBuffer.setOutputMode(ExpandableBuffer.java:88)
>
> The link suggests that this happens when you use Java 9 or later to build.
> What version was used to build 4.5.6?
>
> Thank you,
> Gary
>
>