class ContractCheckingIndexProxy extends DelegatingIndexProxy {

    @Override
    public IndexUpdater newUpdater( IndexUpdateMode mode )
    {
        if ( IndexUpdateMode.ONLINE == mode )
        {
            openCall( "update" );
            return new DelegatingIndexUpdater( super.newUpdater( mode ) )
            {
                @Override
                public void close() throws IndexEntryConflictException
                {
                    try
                    {
                        delegate.close();
                    }
                    finally
                    {
                        closeCall();
                    }
                }
            };
        }
        else
        {
            return super.newUpdater( mode );
        }
    }

    public  ContractCheckingIndexProxy( IndexProxy delegate, boolean started );

}