code: @Override
      public void run() // F73234
      {
          synchronized (this) // d601399
          {
              if (ivIsCanceled) // d583637
              {
                  //if this instance has been canceled, we do no more processing.
                  // this also guarantees that a future alarm is not created.
                  return;
              }
  
              ivIsRunning = true; // F743-33394
          }
  
          try {
              // Go through the list of beans and check to see if any of
              // them needs to be removed
              sweep();
          } catch (Exception e) {
              FFDCFilter.processException(e, CLASS_NAME + ".alarm", "226", this);
              Tr.warning(tc, "UNEXPECTED_EXCEPTION_DURING_STATEFUL_BEAN_CLEANUP_CNTR0015W",
                         new Object[] { this, e }); //p111002.5
          } finally {
              synchronized (this) {
                  ivIsRunning = false; // F743-33394
  
                  if (ivIsCanceled) {
                      // The reaper was canceled while we were sweeping.  Notify
                      // the canceling thread that we're done.
                      notify();
                  } else if (numObjects != 0) {
                      startAlarm(); // F743-33394
                  } else {
                      ivScheduledFuture = null; // F73234
                  }
              }
          }
      }
docs: d91878