code: public synchronized void finalReap() {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "finalReap : Remote Async Results = " + ivAllRemoteAsyncResults.size());
  
          // Re-write the finalReap to use the LinkedHashSet, iterating thru the list removing
          // all the entries no matter if they have timed out or not.  Cancel alarm if set.    d623593
          if (ivFuture != null) {
              ivIsCanceled = true;
              ivFuture.cancel(false);
              ivFuture = null;
          }
  
          for (Iterator<RemoteAsyncResultImpl> iterator = ivAllRemoteAsyncResults.iterator(); iterator.hasNext();) {
              RemoteAsyncResultImpl asyncResult = iterator.next();
              releaseResources(asyncResult); // d690014.3
              iterator.remove();
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "finalReap : Remote Async Results = " + ivAllRemoteAsyncResults.size());
      }
docs: This method is invoked just before container termination to clean
  up server-side Future objects.