Opaque objects will be presented as Java objects. This introduces the option of simplifying the user's task in managing these objects. MPI destructors can be called by the Java object destructors, which are called automatically by the Java garbage collector.
In contrast to the MPI C++ binding, we adopt this strategy as the general rule. Explicit calls to MPI destructor functions are typically omitted from the Java user interface. 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 consistently across processors. Similarly MPI_REQUEST_FREE has a specific semantic effect which is better left under user control.