aeron-archive/src/main/java/io/aeron/archive/Catalog.java
public static boolean originalChannelContains(
        final RecordingDescriptorDecoder descriptorDecoder, final byte[] channelFragment)
    {
        final int fragmentLength = channelFragment.length;
        if (fragmentLength == 0)
        {
            return true;
        }

        final int limit = descriptorDecoder.limit();
        final int strippedChannelLength = descriptorDecoder.strippedChannelLength();
        final int originalChannelOffset = limit +
            RecordingDescriptorDecoder.strippedChannelHeaderLength() + strippedChannelLength;

        descriptorDecoder.limit(originalChannelOffset);
        final int channelLength = descriptorDecoder.originalChannelLength();
        descriptorDecoder.limit(limit);

        final DirectBuffer buffer = descriptorDecoder.buffer();
        int offset = descriptorDecoder.offset() + descriptorDecoder.sbeBlockLength() +
            RecordingDescriptorDecoder.strippedChannelHeaderLength() + strippedChannelLength +
            RecordingDescriptorDecoder.originalChannelHeaderLength();

        nextChar:
        for (int end = offset + (channelLength - fragmentLength); offset <= end; offset++)
        {
            for (int i = 0; i < fragmentLength; i++)
            {
                if (buffer.getByte(offset + i) != channelFragment[i])
                {
                    continue nextChar;
                }
            }

            return true;
        }

        return false;
    }
public static boolean originalChannelContains(
        final RecordingDescriptorDecoder descriptorDecoder, final byte[] channelFragment)
    {
        final int fragmentLength = channelFragment.length;
        if (fragmentLength == 0)
        {
            return true;
        }

        final int limit = descriptorDecoder.limit();
        final int strippedChannelLength = descriptorDecoder.strippedChannelLength();
        final int originalChannelOffset = limit +
            RecordingDescriptorDecoder.strippedChannelHeaderLength() + strippedChannelLength;

        descriptorDecoder.limit(originalChannelOffset);
        final int channelLength = descriptorDecoder.originalChannelLength();
        descriptorDecoder.limit(limit);

        final DirectBuffer buffer = descriptorDecoder.buffer();
        int offset = descriptorDecoder.offset() + descriptorDecoder.sbeBlockLength() +
            RecordingDescriptorDecoder.strippedChannelHeaderLength() + strippedChannelLength +
            RecordingDescriptorDecoder.originalChannelHeaderLength();

        nextChar:
        for (int end = offset + (channelLength - fragmentLength); offset <= end; offset++)
        {
            for (int i = 0; i < fragmentLength; i++)
            {
                if (buffer.getByte(offset + i) != channelFragment[i])
                {
                    continue nextChar;
                }
            }

            return true;
        }

        return false;
    }
public static boolean originalChannelContains ( final RecordingDescriptorDecoder descriptorDecoder , final byte [ ] channelFragment ) { final int fragmentLength = channelFragment . length ; if ( fragmentLength == 0 ) { return true ; } final int limit = descriptorDecoder . limit ( ) ; final int strippedChannelLength = descriptorDecoder . strippedChannelLength ( ) ; final int originalChannelOffset = limit + RecordingDescriptorDecoder . strippedChannelHeaderLength ( ) + strippedChannelLength ; descriptorDecoder . limit ( originalChannelOffset ) ; final int channelLength = descriptorDecoder . originalChannelLength ( ) ; descriptorDecoder . limit ( limit ) ; final DirectBuffer buffer = descriptorDecoder . buffer ( ) ; int offset = descriptorDecoder . offset ( ) + descriptorDecoder . sbeBlockLength ( ) + RecordingDescriptorDecoder . strippedChannelHeaderLength ( ) + strippedChannelLength + RecordingDescriptorDecoder . originalChannelHeaderLength ( ) ; nextChar : for ( int end = offset + ( channelLength - fragmentLength ) ; offset <= end ; offset ++ ) { for ( int i = 0 ; i < fragmentLength ; i ++ ) { if ( buffer . getByte ( offset + i ) != channelFragment [ i ] ) { continue nextChar ; } } return true ; } return false ; }
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////