Register sun.nio.ch.SelectorImpl fields for unsafe access. (#9631)

Motivation:

On JDK > 9 Netty uses Unsafe to write two internal JDK fields: sun.nio.ch.SelectorImp.selectedKeys and sun.nio.ch.SelectorImpl.publicSelectedKeys. This is done in transport/src/main/java/io/netty/channel/nio/NioEventLoop.java:225, in openSelector() method. The GraalVM analysis cannot do the Unsafe registration automatically because the object field offset computation is hidden behind two layers of calls.

Modifications:

This PR updates the Netty GraalVM configuration by registering those fields for unsafe access.
 
Result:

Improved support for Netty on GraalVM with JDK > 9.
This commit is contained in:
Codrut Stancu 2019-10-07 09:10:46 +03:00 committed by Norman Maurer
parent d8b1a2d93f
commit 4980a6b304

View File

@ -4,5 +4,12 @@
"methods": [ "methods": [
{ "name": "<init>", "parameterTypes": [] } { "name": "<init>", "parameterTypes": [] }
] ]
},
{
"name": "sun.nio.ch.SelectorImpl",
"fields": [
{ "name": "selectedKeys", "allowUnsafeAccess" : true},
{ "name": "publicSelectedKeys", "allowUnsafeAccess" : true}
]
} }
] ]