You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Ernest Burghardt (Jira)" <ji...@apache.org> on 2022/05/09 16:40:00 UTC

[jira] [Assigned] (GEODE-9475) ObjectSizer will fail on java 16 and later

     [ https://issues.apache.org/jira/browse/GEODE-9475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ernest Burghardt reassigned GEODE-9475:
---------------------------------------

    Assignee: Ernest Burghardt

> ObjectSizer will fail on java 16 and later
> ------------------------------------------
>
>                 Key: GEODE-9475
>                 URL: https://issues.apache.org/jira/browse/GEODE-9475
>             Project: Geode
>          Issue Type: Bug
>          Components: core
>            Reporter: Darrel Schneider
>            Assignee: Ernest Burghardt
>            Priority: Major
>              Labels: Java16, Java17
>
> The instances of org.apache.geode.cache.util.ObjectSizer, SIZE_CLASS_ONCE, REFLECTION_SIZE, and DEFAULT will not work on java 16 and later because they call Field.setAccessible which is not allowed under normal conditions starting with java 16 (see: https://softwaregarden.dev/en/posts/new-java/illegal-access-in-java-16 ).
> To workaround this failure set the JVM command line option: --illegal-access=permit
> These ObjectSizer instances are used in a number of places internally by geode and can also explicitly be configured by users. Internally they are used by default for eviction (heap or mem), the wan gateway, and tombstone gc. Most all regions produce tombstones so that is the most likely point of failure.
> The code that calls setAccessible is: org.apache.geode.internal.size.ObjectTraverser#buildFieldSet and it is not clear how this code can be changed to do its job without using setAccessible.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)