code: @Override
      public Timer getTimer() throws IllegalStateException, NoSuchObjectLocalException, EJBException {
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "getTimer: " + this);
  
          // Throw NoSuchObjectLocalException if invoked when running in the adjunct control region on z/OS
          if (EJSPlatformHelper.isZOSCRA()) {
              NoSuchObjectLocalException nsoe = new NoSuchObjectLocalException(this.toString() + " -- called from the adjunct control region.");
              if (isTraceOn && tc.isEntryEnabled())
                  Tr.exit(tc, "getTimer: " + nsoe);
              throw nsoe;
          }
  
          // Determine if the calling bean is in a state that allows timer
          // method access - throws IllegalStateException if not allowed.
          checkTimerAccess();
  
          EJBRuntime ejbRuntime = EJSContainer.getDefaultContainer().getEJBRuntime();
          Timer timer = ejbRuntime.getPersistentTimerFromStore(taskId);
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "getTimer: " + timer);
  
          return timer;
      }
docs: Returns a reference to the timer represented by this handle. <p>
  
  @throws NoSuchObjectLocalException If invoked on a handle whose
  associated timer has expired or has been cancelled. Also thrown
  if running in the adjunct control region.
  @throws EJBException If this method could not complete due to a
  system-level failure.