code: private void finishStarting() throws RuntimeWarning {
          boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "finishStarting: " + ivName);
  
          // NOTE - Any state that is cleared here should also be cleared in
          // stoppingModule.
  
          if (ivModules != null) { // F743-26072
              notifyApplicationEventListeners(ivModules, true);
          }
  
          // Signal that the application is "fully started".
          unblockThreadsWaitingForStart(); // F743-15941
  
          synchronized (this) {
              // F743-506 - Now that the application is fully started, start the
              // queued non-persistent timers.
              if (ivQueuedNonPersistentTimers != null) {
                  startQueuedNonPersistentTimerAlarms();
                  ivQueuedNonPersistentTimers = null;
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "finishStarting");
      }
docs: Notification that the application is about to finish starting. Performs processing of
  singletons after all modules have been started but before the application has
  finished starting. Module references are resolved, and startup singletons are
  started.
  
  @throws RuntimeWarning
  if a dependency reference cannot be resolved or a startup singleton fails
  to initialize