Buggy code:
public class HNFeedParser extends BaseHTMLParser < HNFeed > { @ Override public HNFeed parseDocument ( Element doc ) throws Exception { if ( doc == null ) return new HNFeed ( ) ; String currentUser = Settings . getUserName ( App . getInstance ( ) ) ; ArrayList < HNPost > posts = new ArrayList < HNPost > ( ) ; Elements tableRows = doc . select ( "table<seq2seq4repair_space>tr<seq2seq4repair_space>table<seq2seq4repair_space>tr" ) ; tableRows . remove ( 0 ) ; Elements nextPageURLElements = tableRows . select ( "a:matches(^More$)" ) ; if ( ( nextPageURLElements . size ( ) ) > 1 ) { nextPageURLElements = nextPageURLElements . select ( "a[href^=//]" ) ; } String nextPageURL = null ; if ( ( nextPageURLElements . size ( ) ) > 0 ) nextPageURL = HNHelper . resolveRelativeHNURL ( nextPageURLElements . attr ( "href" ) ) ; String url = null ; String title = null ; String author = null ; int commentsCount = 0 ; int points = 0 ; String urlDomain = null ; String postID = null ; String upvoteURL = null ; boolean endParsing = false ; for ( int row = 0 ; row < ( tableRows . size ( ) ) ; row ++ ) { int rowInPost = row % 3 ; Element rowElement = tableRows . get ( row ) ; switch ( rowInPost ) { case 0 : Element e1 = rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(2)<seq2seq4repair_space>><seq2seq4repair_space>a" ) . first ( ) ; if ( e1 == null ) { endParsing = true ; break ; } title = e1 . text ( ) ; url = HNHelper . resolveRelativeHNURL ( e1 . attr ( "href" ) ) ; urlDomain = getDomainName ( url ) ; Element e4 = rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(1)<seq2seq4repair_space>a" ) . first ( ) ; if ( e4 != null ) { upvoteURL = e4 . attr ( "href" ) ; if ( ! ( upvoteURL . contains ( currentUser ) ) ) upvoteURL = null ; else upvoteURL = HNHelper . resolveRelativeHNURL ( upvoteURL ) ; } break ; case 1 : points = getIntValueFollowedBySuffix ( rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(1)<seq2seq4repair_space>><seq2seq4repair_space>span" ) . text ( ) , "<seq2seq4repair_space>p" ) ; author = rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(1)<seq2seq4repair_space>><seq2seq4repair_space>a[href*=user]" ) . text ( ) ; <START_BUG> Element e2 = rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(1)<seq2seq4repair_space>><seq2seq4repair_space>a[href*=item]" ) . first ( ) ; <END_BUG> if ( e2 != null ) { commentsCount = getIntValueFollowedBySuffix ( e2 . text ( ) , "<seq2seq4repair_space>c" ) ; if ( ( commentsCount == ( BaseHTMLParser . UNDEFINED ) ) && ( e2 . text ( ) . contains ( "discuss" ) ) ) commentsCount = 0 ; postID = getStringValuePrefixedByPrefix ( e2 . attr ( "href" ) , "id=" ) ; } else commentsCount = BaseHTMLParser . UNDEFINED ; posts . add ( new HNPost ( url , title , urlDomain , author , postID , commentsCount , points , upvoteURL ) ) ; break ; default : break ; } if ( endParsing ) break ; } return new HNFeed ( posts , nextPageURL , Settings . getUserName ( App . getInstance ( ) ) ) ; } }

Fix:
Element e2 = rowElement . select ( "tr<seq2seq4repair_space>><seq2seq4repair_space>td:eq(1)<seq2seq4repair_space>><seq2seq4repair_space>a[href*=item]" ) . last ( ) ;