Buggy code:
int i = searchQuery . indexOf ( '&' ) ; if ( i != ( - 1 ) ) searchQuery = searchQuery . replace ( searchQuery . substring ( i ) , AllInOneV2 . EMPTY_STRING ) ; searchPJAddition = "&search=" + searchQuery ; try { searchQuery = URLDecoder . decode ( searchQuery , CHARSET_NAME ) ; } catch ( UnsupportedEncodingException e ) { throw new AssertionError ( ( ( DocumentParser . CHARSET_NAME ) + "<seq2seq4repair_space>is<seq2seq4repair_space>unknown" ) ) ; } } Element headerElem = doc . getElementsByClass ( "page-title" ) . first ( ) ; if ( headerElem != null ) headerTitle = headerElem . text ( ) ; else headerTitle = "GFAQs<seq2seq4repair_space>Cache<seq2seq4repair_space>Error,<seq2seq4repair_space>Board<seq2seq4repair_space>Title<seq2seq4repair_space>Not<seq2seq4repair_space>Found" ; if ( ( searchQuery . length ( ) ) > 0 ) headerTitle += ( "<seq2seq4repair_space>(search:<seq2seq4repair_space>" + searchQuery ) + ")" ; if ( ( doc . select ( "ul.paginate" ) . size ( ) ) > 1 ) { pj = doc . select ( "ul.paginate" ) . get ( 1 ) ; if ( ( pj != null ) && ( ! ( pj . hasClass ( "user" ) ) ) ) { pagesInfo = getPageJumperInfo ( pj ) ; pagePrefix = ( "boards//" + ( boardID ) ) + "?page=" ; if ( ( pagesInfo [ 0 ] ) > 1 ) { firstPage = ( pagePrefix + 0 ) + searchPJAddition ; prevPage = ( pagePrefix + ( ( pagesInfo [ 0 ] ) - 2 ) ) + searchPJAddition ; } if ( ( pagesInfo [ 0 ] ) != ( pagesInfo [ 1 ] ) ) { nextPage = ( pagePrefix + ( pagesInfo [ 0 ] ) ) + searchPJAddition ; lastPage = ( pagePrefix + ( ( pagesInfo [ 1 ] ) - 1 ) ) + searchPJAddition ; if ( ( pagesInfo [ 0 ] ) > ( pagesInfo [ 1 ] ) ) { session . forceNoHistoryAddition ( ) ; session . forceSkipAIOCleanup ( ) ; Crouton . showText ( this , "Page<seq2seq4repair_space>count<seq2seq4repair_space>higher<seq2seq4repair_space>than<seq2seq4repair_space>page<seq2seq4repair_space>amount,<seq2seq4repair_space>going<seq2seq4repair_space>to<seq2seq4repair_space>last<seq2seq4repair_space>page..." , Theming . croutonStyle ( ) ) ; session . get ( BOARD , lastPage ) ; return ; } } } } updateHeader ( headerTitle , firstPage , prevPage , pagesInfo [ 0 ] , pagesInfo [ 1 ] , nextPage , lastPage , ( pagePrefix + searchPJAddition ) , BOARD ) ; setMenuItemVisibility ( searchIcon , true ) ; if ( Session . isLoggedIn ( ) ) { Element favbtn = doc . getElementsByClass ( "user" ) . first ( ) . getElementsByAttributeValueStarting ( "onclick" , "post_click" ) . first ( ) ; if ( favbtn != null ) { String favtext = favbtn . text ( ) . toLowerCase ( ) ; String onclick = favbtn . attr ( "onclick" ) ; int endPoint = onclick . lastIndexOf ( '\'' ) ; int startPoint = ( onclick . lastIndexOf ( '\'' , ( endPoint - 1 ) ) ) + 1 ; favKey = onclick . substring ( startPoint , endPoint ) ; fMode = AllInOneV2 . FavMode . ON_BOARD ; if ( favtext . contains ( "add<seq2seq4repair_space>to<seq2seq4repair_space>favorites" ) ) setMenuItemVisibility ( addFavIcon , true ) ; else if ( favtext . contains ( "remove<seq2seq4repair_space>favorite" ) ) setMenuItemVisibility ( remFavIcon , true ) ; } updatePostingRights ( doc , false ) ; } Element splitList = doc . select ( "p:contains(this<seq2seq4repair_space>is<seq2seq4repair_space>a<seq2seq4repair_space>split<seq2seq4repair_space>board)" ) . first ( ) ; if ( splitList != null ) { String splitListLink = splitList . child ( 0 ) . attr ( "href" ) ; adapterRows . add ( new com . ioabsoftware . gameraven . views . rowdata . BoardRowData ( "This<seq2seq4repair_space>is<seq2seq4repair_space>a<seq2seq4repair_space>Split<seq2seq4repair_space>Board." , "Click<seq2seq4repair_space>here<seq2seq4repair_space>to<seq2seq4repair_space>return<seq2seq4repair_space>to<seq2seq4repair_space>the<seq2seq4repair_space>Split<seq2seq4repair_space>List." , null , null , null , splitListLink , BoardType . SPLIT ) ) ; } Element table = doc . select ( "table.board" ) . first ( ) ; <START_BUG> if ( table != null ) { <END_BUG> table . getElementsByTag ( "col" ) . get ( 2 ) . remove ( ) ; table . getElementsByTag ( "th" ) . get ( 2 ) . remove ( ) ; table . getElementsByTag ( "col" ) . get ( 0 ) . remove ( ) ; table . getElementsByTag ( "th" ) . get ( 0 ) . remove ( ) ; if ( BuildConfig . DEBUG ) AllInOneV2 . wtl ( "board<seq2seq4repair_space>row<seq2seq4repair_space>parsing<seq2seq4repair_space>start" ) ; boolean skipFirst = true ; Set < String > hlUsers = AllInOneV2 . hlDB . getHighlightedUsers ( ) . keySet ( ) ; for ( Element row : table . getElementsByTag ( "tr" ) ) { if ( ! skipFirst ) { Elements cells = row . getElementsByTag ( "td" ) ; String tImg = cells . get ( 0 ) . child ( 0 ) . className ( ) ; Element titleLinkElem = cells . get ( 1 ) . child ( 0 ) ; String title = titleLinkElem . text ( ) ; String tUrl = titleLinkElem . attr ( "href" ) ; String tc = cells . get ( 2 ) . text ( ) ; Element lPostLinkElem = cells . get ( 4 ) . child ( 0 ) ; String lastPost = lPostLinkElem . text ( ) ; String lpUrl = lPostLinkElem . attr ( "href" ) ; String mCount = cells . get ( 3 ) . text ( ) ; TopicType type = TopicType . NORMAL ; if ( tImg . contains ( "poll" ) ) type = TopicType . POLL ; else if ( tImg . contains ( "sticky" ) ) type = TopicType . PINNED ; else if ( tImg . contains ( "closed" ) ) type = TopicType . LOCKED ; else if ( tImg . contains ( "archived" ) ) type = TopicType . ARCHIVED ; if ( BuildConfig . DEBUG ) AllInOneV2 . wtl ( ( ( tImg + ",<seq2seq4repair_space>" ) + ( type . name ( ) ) ) ) ; ReadStatus status = ReadStatus . UNREAD ;

Fix:
if ( ( table != null ) && ( ! ( table . select ( "td" ) . first ( ) . hasAttr ( "colspan" ) ) ) ) {