docs: protected void simulateLogOutputFull(boolean isFull)
                      throws ObjectManagerException
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass
                          , "simulateLogOutputFull"
                          , new Object[] { new Boolean(isFull) });
  
          synchronized (logFullReservedLock) {
              if (isFull) {
                  // Clear as much space as we can.
                  objectManagerState.waitForCheckpoint(true);
  
                  // Reserve all of the free space in the log.
                  int numberOfZeros = 3;
                  for (int zeroCount = numberOfZeros; zeroCount > 0;) {
                      long available = 0;
                      synchronized (logBufferLock) {
                          available = getLogFileSpaceLeft();
                          if (Tracing.isAnyTracingEnabled() && trace.isDebugEnabled())
                              trace.debug(this,
                                          cclass,
                                          "simulateLogOutputFull",
                                          new Object[] { new Long(available) });
                          if (reserveLogFileSpace(available) == 0) {
                              logFullReserved = logFullReserved + available;
                          } // if (writingFlushSet...
                      } // synchronized (logBufferLock).
  
                      if (available > 0) {
                          flush();
                          zeroCount = numberOfZeros;
                      } else {
                          // Make sure there are also no unchecked bytes.
                          objectManagerState.waitForCheckpoint(true);
                          // keep going until we have cycled through all of the flush sets.
                          zeroCount--;
                      } // if (available > 0).
                  } // for (int zeroCount.
  
              } else {
                  reserveLogFileSpace(-logFullReserved);
                  logFullReserved = 0;
                  flush();
  
              } // if (isFull).
          } // synchronized (logFullReservedLock).
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this,
                         cclass,
                         "simulateLogOutputFull",
                         new Object[] { new Long(logFullReserved) });
      }