question: protected int decodeLinePrefix ( PushbackInputStream inStream , OutputStream outStream ) throws IOException { int i ; int nLen , nSeq ; byte xtmp [ ] ; int c ; crc . value = 0 ; while ( true ) { c = inStream . read ( tmp , 0 , 1 ) ; if ( c == - 1 ) { throw new CEStreamExhausted ( ) ; } if ( tmp [ 0 ] == '*' ) { break ; } } lineAndSeq . reset ( ) ; decodeAtom ( inStream , lineAndSeq , 2 ) ; xtmp = lineAndSeq . toByteArray ( ) ; nLen = xtmp [ 0 ] & 0xff ; nSeq = xtmp [ 1 ] & 0xff ; if ( nSeq != sequence ) { throw new CEFormatException ( "UCDecoder: Out of sequence line." ) ; } sequence = ( sequence + 1 ) & 0xff ; return ( nLen ) ; }
target:  decodeLinePrefix reads the sequence number and the number of encoded bytes from the line. If the sequence number is not the previous sequence number + 1 then an exception is thrown. UCE lines are line terminator immune, they all start with  so the other thing this method does is scan for the next line by looking for the * character.