Skip to content

Add reflection hints for native-image support#1072

Closed
violetagg wants to merge 1 commit intorsocket:masterfrom
violetagg:native-image-configuration
Closed

Add reflection hints for native-image support#1072
violetagg wants to merge 1 commit intorsocket:masterfrom
violetagg:native-image-configuration

Conversation

@violetagg
Copy link
Contributor

Motivation:

The issues below are observed when trying to test rsocket native-image support
1.

Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldException: producerIndex",
    "	at io.rsocket.internal.jctools.queues.UnsafeAccess.fieldOffset(UnsafeAccess.java:92) ~[na:na]",
    "	at io.rsocket.internal.jctools.queues.BaseMpscLinkedArrayQueueProducerFields.<clinit>(BaseMpscLinkedArrayQueue.java:53) ~[rsocket:na]",
    "	... 34 common frames omitted",
    "Caused by: java.lang.NoSuchFieldException: producerIndex",
    "	at java.lang.Class.getDeclaredField(DynamicHub.java:968) ~[rsocket:na]",
    "	at io.rsocket.internal.jctools.queues.UnsafeAccess.fieldOffset(UnsafeAccess.java:90) ~[na:na]",
    "	... 35 common frames omitted",
  1. When a ChannelHandler is added to the Netty channel pipeline,
    io.netty.channel.ChannelHandlerMask#mask0 will inspect the ChannelHandler's methods for
    io.netty.channel.ChannelHandlerMask.Skip annotation.
    When there are no reflection hints, NoSuchMethodException is thrown when trying to query the methods.
    This will lead to methods marked as not skippable, although the program will be able to run
    without any problems, when all methods are marked as not skippable, one might observe performance issues.

Modifications:

  • Add reflection hints for jctools queues
  • Add reflection hints for ChannelHandler's

Result:

No issues when testing rsocket native-image support

Signed-off-by: Violeta Georgieva <violetag@vmware.com>
@OlegDokuka OlegDokuka changed the base branch from master to 1.1.x September 13, 2022 15:59
@OlegDokuka OlegDokuka changed the base branch from 1.1.x to master September 13, 2022 16:00
@OlegDokuka
Copy link
Member

superseded by #1073

@OlegDokuka OlegDokuka closed this Sep 13, 2022
@violetagg violetagg deleted the native-image-configuration branch September 13, 2022 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants