From 8f76b8620315420002c8a72ca21649c06f4457b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Galder=20Zamarren=CC=83o?= Date: Thu, 4 Jun 2020 14:12:48 +0200 Subject: [PATCH] Avoid using the byte buffer used to calculate memory address #9750 * Recompute the field from a unused direct byte buffer. * Also, set empty byte buffer memory address to 0. --- .../netty/runtime/graal/NettySubstitutions.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/NettySubstitutions.java b/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/NettySubstitutions.java index 298966b37ec111..681b39b146c8fc 100644 --- a/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/NettySubstitutions.java +++ b/extensions/netty/runtime/src/main/java/io/quarkus/netty/runtime/graal/NettySubstitutions.java @@ -1,5 +1,6 @@ package io.quarkus.netty.runtime.graal; +import java.nio.ByteBuffer; import java.security.PrivateKey; import java.security.Provider; import java.security.cert.X509Certificate; @@ -389,6 +390,19 @@ static Class tryToLoadClass(final ClassLoader loader, final Class helper) } +@TargetClass(className = "io.netty.buffer.EmptyByteBuf") +final class Target_io_netty_buffer_EmptyByteBuf { + + @Alias + @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias) + private static ByteBuffer EMPTY_BYTE_BUFFER = ByteBuffer.allocateDirect(0); + + @Alias + @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias) + private static long EMPTY_BYTE_BUFFER_ADDRESS = 0; + +} + class NettySubstitutions { }