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) });
    }
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 ) { objectManagerState . waitForCheckpoint ( true ) ; 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 ( available > 0 ) { flush ( ) ; zeroCount = numberOfZeros ; } else { objectManagerState . waitForCheckpoint ( true ) ; zeroCount -- ; } } } else { reserveLogFileSpace ( - logFullReserved ) ; logFullReserved = 0 ; flush ( ) ; } } if ( Tracing . isAnyTracingEnabled ( ) && trace . isEntryEnabled ( ) ) trace . exit ( this , cclass , "simulateLogOutputFull" , new Object [ ] { new Long ( logFullReserved ) } ) ; }
When enabled, writes to the log will throw LogFileFullException.
Unless objectManagerState.logFullTriggerCheckpointThreshold is set to 1.0
calling simulateLogOutputFull(true); will cause the ObjectManager to continually
take checkpoints in order to free up space in the log.

@param isFull true subsequent writes to the log throw LogFileFullException.
if false subsequent writes may succeed.
@throws ObjectManagerException