code: @Override
      public Object get() throws InterruptedException, ExecutionException {
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
  
          if (isTraceOn && tc.isEntryEnabled()) {
              Tr.entry(tc, "get - Future object: " + this);
          }
  
          await(0, null); // F16043
          Object result = getResult(); // d650178
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "get: " + Util.identity(result));
          return result;
      }
docs: This get method returns the result of the async method call if it is
  available. Otherwise, it blocks until the result is available. It is
  unblocked when the Work object that runs the async method on a work
  manager finishes (i.e. with either good results or an exception), and
  sets results on this instance.<p>
  
  @return - the result object
  
  @throws InterruptedException - if the thread is interrupted while waiting
  @throws CancellationException - if the async method was canceled successfully
  @throws ExecutionException - if the async method ended with an exception