docs: @Override
      public long getTimeRemaining()
                      throws IllegalStateException,
                      NoSuchObjectLocalException,
                      EJBException
      {
          Date nextTime = getNextTimeout();
          long currentTime = System.currentTimeMillis();
          long remaining = nextTime.getTime() - currentTime;
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
              Tr.debug(tc, "getTimeRemaining: " + remaining);
  
          return remaining;
      }