În Java SE 17, încapsularea Java a fost mărită prin înlăturarea steguleţului --illegal-access. În plus față de ascunderea internilor JDK, acest lucru oprește, de asemenea accesul unui modul la tipurile care nu sunt exportate ale altui modul.
Acest lucru poate cauza probleme cu serializarea IIOP pentru parametrii și valorile de returnare pentru apelurile de metodă pe EJB-uri la distanță, deoarece trebuie accesate valori de metodă şi de private.
Problemele datorate acestei modificări vor apărea în general ca o excepţie generică java.rmi.MarshalException.
Pentru a rezolva oricare problemă, va trebui să deschideți orice modul necesar pe clientul sau pe serverul unde apare eșecul. În mod implicit, Liberty deschide mai multe module utilizate în mod obișnuit. Pentru a vedea modulele deja deschise de Liberty, căutați în fișierul wlp/lib/platform/java/java9.options. Orice instrucţiuni suplimentare de deschidere trebuie adăugate în fişierul jvm.options. De exemplu:
--add-opens
java.base/java.lang=ALL-UNNAMED
Pentru mai multe informații cu privire la aceste modificări, JEP 403: Puternic Encapsulate JDK Internals.