docs: @Trivial
      public void enactOpen(long openAt) {
          String methodName = "enactOpen";
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled() ) {
              Tr.debug(tc, methodName + " On [ " + path + " ] at [ " + toRelSec(initialAt, openAt) + " (s) ]");
          }
  
          if ( zipFileState == ZipFileState.OPEN ) { // OPEN -> OPEN
              openDuration += openAt - lastOpenAt;
  
              lastLastOpenAt = lastOpenAt;
              lastOpenAt = openAt;
  
              openCount++;
  
          } else if ( zipFileState == ZipFileState.PENDING ) { // PENDING -> OPEN
              long lastPendDuration = openAt - lastPendAt;
              pendToOpenDuration += lastPendDuration;
  
              pendToOpenCount++;
  
              lastLastOpenAt = lastOpenAt;
              lastOpenAt = openAt;
  
              openCount++;
  
              zipFileState = ZipFileState.OPEN;
  
              if ( ZIP_REAPER_COLLECT_TIMINGS ) {
                  timing(" Pend Success [ " + toAbsSec(lastPendDuration) + " (s) ]");
              }
  
          } else if ( zipFileState == ZipFileState.FULLY_CLOSED ) { // FULLY_CLOSED -> OPEN
              if ( firstOpenAt == -1L ) {
                  firstOpenAt = openAt;
  
              } else {
                  long lastFullCloseDuration = openAt - lastFullCloseAt;
                  fullCloseToOpenDuration += lastFullCloseDuration;
  
                  if ( ZIP_REAPER_COLLECT_TIMINGS ) {
                      long lastPendDuration = ( (lastPendAt == -1L) ? 0 : (lastFullCloseAt - lastPendAt) );
                      timing(" Reopen; Pend [ " + toAbsSec(lastPendDuration) + " (s) ] " +
                             " Close [ " + toAbsSec(lastFullCloseDuration) + " (s) ]");
                  }
              }
  
              fullCloseToOpenCount++;
  
              lastLastOpenAt = lastOpenAt;
              lastOpenAt = openAt;
  
              openCount++;
  
              zipFileState = ZipFileState.OPEN;
  
          } else {
              throw unknownState();
          }
          
  
          if ( ZIP_REAPER_COLLECT_TIMINGS ) {
              timing(" Open " + dualTiming(openAt, initialAt) + " " + openState());
          }
      }