java.lang.IllegalAccessError при использовании веб-клиента vertx версии 4.0.0

Использование vertx 4.0.0 с jdk 14. Я получаю следующее исключение при попытке сделать REST-запрос с помощью веб-клиента vertx:

15:56:48.294 [vert.x-eventloop-thread-0] ERROR io.vertx.core.impl.ContextImpl - Unhandled exception
java.lang.IllegalAccessError: class io.vertx.core.buffer.impl.VertxUnsafeHeapByteBuf cannot access its superclass io.netty.buffer.UnpooledUnsafeHeapByteBuf (io.vertx.core.buffer.impl.VertxUnsafeHeapByteBuf and io.netty.buffer.UnpooledUnsafeHeapByteBuf are in unnamed module of loader 'app')
        at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[?:?]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642) ~[?:?]
        at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600) ~[?:?]
        at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
        at io.vertx.core.buffer.impl.VertxByteBufAllocator.<clinit>(VertxByteBufAllocator.java:20) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.<init>(BufferImpl.java:64) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.<init>(BufferImpl.java:60) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.impl.BufferImpl.buffer(BufferImpl.java:38) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.buffer.Buffer.buffer(Buffer.java:49) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.codec.impl.BodyCodecImpl$1.<init>(BodyCodecImpl.java:88) ~[vertx-web-common-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.codec.impl.BodyCodecImpl.create(BodyCodecImpl.java:86) ~[vertx-web-common-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.handleReceiveResponse(HttpContext.java:427) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:338) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:322) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:289) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.receiveResponse(HttpContext.java:238) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.ext.web.client.impl.HttpContext.lambda$null$13(HttpContext.java:564) ~[vertx-web-client-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:125) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:61) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:180) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.Promise.complete(Promise.java:66) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestImpl.handleResponse(HttpClientRequestImpl.java:350) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestBase.handleResponse(HttpClientRequestBase.java:185) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.HttpClientRequestBase.lambda$new$0(HttpClientRequestBase.java:71) ~[vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:52) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.ContextImpl.emit(ContextImpl.java:294) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.impl.EventLoopContext.emit(EventLoopContext.java:24) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection$StreamImpl.handleHead(Http1xClientConnection.java:537) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleResponseBegin(Http1xClientConnection.java:695) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleHttpMessage(Http1xClientConnection.java:628) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.http.impl.Http1xClientConnection.handleMessage(Http1xClientConnection.java:602) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.net.impl.ConnectionBase.read(ConnectionBase.java:151) [vertx-core-4.0.0.jar:4.0.0]
        at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:144) [vertx-core-4.0.0.jar:4.0.0]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:426) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1476) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1225) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1272) [netty-handler-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) [netty-codec-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar:4.1.34.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
        at java.lang.Thread.run(Thread.java:832) [?:?]

При более внимательном рассмотрении ошибки выясняется, что действительно класс Vertx VertxUnsafeHeapByteBuf наследуется от класса Netty UnpooledUnsafeHeapByteBuf, который имеет уровень доступа на уровне пакета. (другими словами, это не публичный класс) Maven версии библиотеки Netty разрешает его как 4.1.34.Final.

Я попытался исключить эту версию библиотеки Netty и использовать более новую версию, которая имеет класс UnpooledUnsafeHeapByteBuf с общедоступным средством доступа. поэтому я использовал последнюю версию 4.1.58.Final, и хотя я больше не получаю IllegalAccessError, к сожалению, она все еще не работает со следующей трассировкой стека:

io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'usapi.alibaba.com' failed to resolve 'usapi.alibaba.com' after 2 queries 
    at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:877)
    at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:838)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:333)
    at io.netty.resolver.dns.DnsResolveContext.access$600(DnsResolveContext.java:63)
    at io.netty.resolver.dns.DnsResolveContext$3.operationComplete(DnsResolveContext.java:382)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:152)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:33)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:357)
    at io.netty.resolver.dns.DnsResolveContext.access$600(DnsResolveContext.java:63)
    at io.netty.resolver.dns.DnsResolveContext$3.operationComplete(DnsResolveContext.java:382)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:152)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:33)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:357)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:951)
    at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:270)
    at io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:245)
    at io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:98)
    at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:212)
    at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:995)
    at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:974)
    at io.netty.resolver.dns.DnsNameResolver.doResolveUncached(DnsNameResolver.java:879)
    at io.netty.resolver.dns.DnsNameResolver.doResolve(DnsNameResolver.java:829)
    at io.netty.resolver.dns.DnsNameResolver.doResolve(DnsNameResolver.java:672)
    at io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:63)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:100)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:66)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:51)
    at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:57)
    at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:32)
    at io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:108)
    at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
    at io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:170)
    at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:145)
    at io.vertx.core.net.impl.ChannelProvider.handleConnect(ChannelProvider.java:137)
    at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:90)
    at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:76)
    at io.vertx.core.http.impl.HttpChannelConnector.doConnect(HttpChannelConnector.java:145)
    at io.vertx.core.http.impl.HttpChannelConnector.connect(HttpChannelConnector.java:120)
    at io.vertx.core.net.impl.clientconnection.Pool$Holder.connect(Pool.java:126)
    at io.vertx.core.net.impl.clientconnection.Pool.checkPendingTasks(Pool.java:243)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: io.netty.resolver.dns.DnsNameResolverException: [/8.8.4.4:53] failed to send a query (no stack trace available)
Caused by: io.netty.handler.codec.EncoderException: java.lang.NoClassDefFoundError: io/netty/util/internal/ObjectPool$ObjectCreator
    at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
    at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:706)
    at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:753)
    at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:778)
    at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:747)
    at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1031)
    at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:310)
    at io.netty.resolver.dns.DnsQueryContext.writeQuery(DnsQueryContext.java:139)
    at io.netty.resolver.dns.DnsQueryContext.sendQuery(DnsQueryContext.java:118)
    at io.netty.resolver.dns.DnsQueryContext.query(DnsQueryContext.java:113)
    at io.netty.resolver.dns.DnsNameResolver.query0(DnsNameResolver.java:1109)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:351)
    at io.netty.resolver.dns.DnsResolveContext.access$600(DnsResolveContext.java:63)
    at io.netty.resolver.dns.DnsResolveContext$3.operationComplete(DnsResolveContext.java:382)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:476)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:152)
    at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:33)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:357)
    at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:951)
    at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:270)
    at io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:245)
    at io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:98)
    at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:212)
    at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:995)
    at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:974)
    at io.netty.resolver.dns.DnsNameResolver.doResolveUncached(DnsNameResolver.java:879)
    at io.netty.resolver.dns.DnsNameResolver.doResolve(DnsNameResolver.java:829)
    at io.netty.resolver.dns.DnsNameResolver.doResolve(DnsNameResolver.java:672)
    at io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:63)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:100)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:66)
    at io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:51)
    at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:57)
    at io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:32)
    at io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:108)
    at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
    at io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:170)
    at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:145)
    at io.vertx.core.net.impl.ChannelProvider.handleConnect(ChannelProvider.java:137)
    at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:90)
    at io.vertx.core.net.impl.ChannelProvider.connect(ChannelProvider.java:76)
    at io.vertx.core.http.impl.HttpChannelConnector.doConnect(HttpChannelConnector.java:145)
    at io.vertx.core.http.impl.HttpChannelConnector.connect(HttpChannelConnector.java:120)
    at io.vertx.core.net.impl.clientconnection.Pool$Holder.connect(Pool.java:126)
    at io.vertx.core.net.impl.clientconnection.Pool.checkPendingTasks(Pool.java:243)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.NoClassDefFoundError: io/netty/util/internal/ObjectPool$ObjectCreator
    at io.netty.buffer.PoolThreadCache.createSubPageCaches(PoolThreadCache.java:117)
    at io.netty.buffer.PoolThreadCache.<init>(PoolThreadCache.java:74)
    at io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.initialValue(PooledByteBufAllocator.java:499)
    at io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.initialValue(PooledByteBufAllocator.java:483)
    at io.netty.util.concurrent.FastThreadLocal.initialize(FastThreadLocal.java:188)
    at io.netty.util.concurrent.FastThreadLocal.get(FastThreadLocal.java:142)
    at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:373)
    at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:187)
    at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:178)
    at io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:139)
    at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.allocateBuffer(DatagramDnsQueryEncoder.java:86)
    at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:62)
    at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:35)
    at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:89)
    ... 52 more
Caused by: java.lang.ClassNotFoundException: io.netty.util.internal.ObjectPool$ObjectCreator
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 66 more

person Yaniv Cohen    schedule 26.01.2021    source источник
comment
Похоже, что обновление может быть не таким уж простым. Вы также можете указать разницу в реализации io.netty.util.internal.ObjectPool$ObjectCreator при обновлении версии netty?   -  person Naman    schedule 26.01.2021
comment
У Нетти какое-то время возникают некоторые странные проблемы. В моем случае веб-поток вызывал завершение цикла событий, когда он находился в пути к классам. Я решил это с помощью теста и отслеживания и остановился на mvnrepository.com /artifact/io.netty/netty-all/4.1.48.Final   -  person Aniket Sahrawat    schedule 26.01.2021
comment
@Naman Это ClassNotFoundException, если ты что-то пропустил.   -  person Concurrent Bhai    schedule 28.01.2021
comment
@ConcurrentBhai Нет. Я не пропустил. Причиной запроса о реализации было явное обновление, упомянутое OP, которое привело к CNFE.   -  person Naman    schedule 28.01.2021


Ответы (2)


Пока vert.x не выпустит исправление для этой проблемы. На данный момент предложение Аникет Сахрават решило проблему. который должен включить в ваш файл POM следующую зависимость:

<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.1.48.Final</version>
</dependency>
person Yaniv Cohen    schedule 27.01.2021

Судя по вашей последней трассировке стека, похоже, что у вас есть несколько версий netty в пути к классам. Убедитесь, что все они имеют одинаковую версию (в этом примере 4.1.58.Final).

person Norman Maurer    schedule 27.01.2021
comment
Спасибо, Норман. Вторая трассировка стека была попыткой увидеть, решит ли проблему обновление библиотеки netty до версии, содержащей тот же класс. да, но это создало новую проблему, которую гораздо сложнее решить, потому что теперь мне нужно исключить все зависимости netty из всех моих зависимостей vertx, чтобы все они работали с другой версией. Я не хотел бы идти по этому пути, потому что не думаю, что мне нужно менять зависимости версий vertx netty. Есть ли другой способ решить эту проблему? - person Yaniv Cohen; 27.01.2021
comment
Насколько я понимаю, вам нужно обновить netty. - person Norman Maurer; 27.01.2021