JDK-7104209 : Cleanup and remove librmi (native library)
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.rmi
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-10-24
  • Updated: 2013-09-04
  • Resolved: 2011-10-29
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
7u40Fixed 8 b12Fixed
It appears that the only function of librmi is to export the VM function JVM_LatestUserDefinedLoader. It seems really silly to have a whole native library to perform such a trivial operation. JVM_LatestUserDefinedLoader is also used in java.io.ObjectInputStream.

It would make more sense to put an entry point in sun.misc.VM, and have rmi, ois invoke it. This would completely eliminate the need for librmi.

Verified with JDK8 nightly results, the RMI tests' failures were fixed

EVALUATION JDK 8 changeset: Changeset: 3f391e649ccb Author: chegar Date: 2011-10-24 20:55 +0100 URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/3f391e649ccb 7104209: Cleanup and remove librmi (native library) Reviewed-by: mduigou, alanb ! make/java/java/mapfile-vers ! make/sun/rmi/rmi/Makefile - make/sun/rmi/rmi/mapfile-vers ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/native/java/io/ObjectInputStream.c ! src/share/native/sun/misc/VM.c - src/share/native/sun/rmi/server/MarshalInputStream.c

EVALUATION Seems reasonable.