Opaque objects are presented as Java objects. This introduces the option of simplifying the user's task in managing these objects. MPI destructors can be absorbed into Java object destructors, which are called automatically by the Java garbage collector. We adopt this strategy as the general rule. Explicit calls to MPI destructor functions are typically omitted from the Java user interface (they are absorbed into finalize methods). Exceptions are made for the Comm and Request classes. MPI_COMM_FREE is a collective operation, so the user must ensure that calls are made at consistent times by all processors involved--the call can't be left to the vagaries of the garbage collector. A similar case can be made for MPI_REQUEST_FREE.