Buggy code:
public final class XmlPullParser implements IXmlPullParser { public static final String STYLE = "style" ; public static final String SCRIPT = "script" ; private XmlReader xmlReader ; private FullyBufferedReader input ; private String skipUntilText ; private CharSequence lastText ; private CharSequence doctype ; private HttpTagType lastType = HttpTagType . NOT_INITIALIZED ; private XmlTag lastTag ; public XmlPullParser ( ) { } public final String getEncoding ( ) { } public final CharSequence getDoctype ( ) { } public final CharSequence getInputFromPositionMarker ( final int toPos ) { } public final CharSequence getInput ( final int fromPos , final int toPos ) { } private final void skipUntil ( ) throws ParseException { } private String getLineAndColumnText ( ) { } public final HttpTagType next ( ) throws ParseException { } protected void specialTagHandling ( String tagText , final int openBracketIndex , int closeBracketIndex ) throws ParseException { if ( tagText . startsWith ( "!--" ) ) { if ( tagText . contains ( "![endif]--" ) ) { lastType = HttpTagType . CONDITIONAL_COMMENT_ENDIF ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; return ; } if ( ( tagText . startsWith ( "!--[if<seq2seq4repair_space>" ) ) && ( tagText . endsWith ( "]" ) ) ) { int pos = input . find ( "]-->" , ( openBracketIndex + 1 ) ) ; if ( pos == ( - 1 ) ) { throw new ParseException ( ( "Unclosed<seq2seq4repair_space>conditional<seq2seq4repair_space>comment<seq2seq4repair_space>beginning<seq2seq4repair_space>at" + ( getLineAndColumnText ( ) ) ) , openBracketIndex ) ; } pos += 4 ; lastText = input . getSubstring ( openBracketIndex , pos ) ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; lastType = HttpTagType . CONDITIONAL_COMMENT ; } else { int pos = input . find ( "-->" , ( openBracketIndex + 1 ) ) ; if ( pos == ( - 1 ) ) { throw new ParseException ( ( "Unclosed<seq2seq4repair_space>comment<seq2seq4repair_space>beginning<seq2seq4repair_space>at" + ( getLineAndColumnText ( ) ) ) , openBracketIndex ) ; } pos += 3 ; lastText = input . getSubstring ( openBracketIndex , pos ) ; lastType = HttpTagType . COMMENT ; input . setPosition ( pos ) ; } return ; } if ( tagText . equals ( "![endif]--" ) ) { <START_BUG> lastType = HttpTagType . CONDITIONAL_COMMENT ; <END_BUG> input . setPosition ( ( closeBracketIndex + 1 ) ) ; return ; } if ( tagText . startsWith ( "![" ) ) { final String startText = ( ( tagText . length ( ) ) <= 8 ) ? tagText : tagText . substring ( 0 , 8 ) ; if ( startText . toUpperCase ( ) . equals ( "![CDATA[" ) ) { int pos1 = openBracketIndex ; do { closeBracketIndex = findChar ( '>' , pos1 ) ; if ( closeBracketIndex == ( - 1 ) ) { throw new ParseException ( ( "No<seq2seq4repair_space>matching<seq2seq4repair_space>close<seq2seq4repair_space>bracket<seq2seq4repair_space>at" + ( getLineAndColumnText ( ) ) ) , input . getPosition ( ) ) ; } tagText = input . getSubstring ( ( openBracketIndex + 1 ) , closeBracketIndex ) . toString ( ) ; pos1 = closeBracketIndex + 1 ; } while ( ( tagText . endsWith ( "]]" ) ) == false ) ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; lastText = tagText ; lastType = HttpTagType . CDATA ; return ; } } if ( ( tagText . charAt ( 0 ) ) == '?' ) { lastType = HttpTagType . PROCESSING_INSTRUCTION ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; return ; } if ( tagText . startsWith ( "!DOCTYPE" ) ) { lastType = HttpTagType . DOCTYPE ; doctype = input . getSubstring ( ( openBracketIndex + 1 ) , closeBracketIndex ) ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; return ; } lastType = HttpTagType . SPECIAL_TAG ; input . setPosition ( ( closeBracketIndex + 1 ) ) ; } public final XmlTag getElement ( ) { } public final CharSequence getString ( ) { } public final XmlTag nextTag ( ) throws ParseException { } private int findChar ( final char ch , int startIndex ) { } public void parse ( final CharSequence string ) throws IOException , ResourceStreamNotFoundException { } public void parse ( final InputStream in ) throws IOException , ResourceStreamNotFoundException { } public void parse ( final InputStream inputStream , final String encoding ) throws IOException { } public final void setPositionMarker ( ) { } public final void setPositionMarker ( final int pos ) { } @ Override public String toString ( ) { } private boolean parseTagText ( final XmlTag tag , final String tagText ) throws ParseException { } }

Fix:
lastType = HttpTagType . CONDITIONAL_COMMENT_ENDIF ;