docs: @Override
      public Serializable getInfo() throws IllegalStateException, NoSuchObjectLocalException, EJBException {
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "getInfo: " + this);
  
          // Determine if the calling bean is in a state that allows timer service
          // method access - throws IllegalStateException if not allowed.
          checkTimerAccess();
  
          PersistentTimerTaskHandler taskHandler = getTimerTaskHandler(ALLOW_CACHED_TIMER_GET_INFO);
          Serializable userInfo = taskHandler.getUserInfo(); // returns a new copy every time
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "getInfo: " + Util.identity(userInfo));
  
          return userInfo;
      }