Buggy code:
} return BookUpdater . OnUpdateStatusChangedListener . Status . OK_ENTRY ; } catch ( Exception e ) { Log . e ( TAG , e . toString ( ) ) ; return BookUpdater . OnUpdateStatusChangedListener . Status . UNKNOWN ; } } } ; URL url = new URL ( ( "http:////search.books.com.tw//exep//prod_search.php?key=" + ( entry . isbn ) ) ) ; async . execute ( url ) ; } catch ( MalformedURLException e ) { Log . e ( TAG , e . toString ( ) ) ; } } @ Override public void updateInfo ( ) { } } public static class LinkUpdater extends BookUpdater { private String link ; protected LinkUpdater ( BookEntry e , String link ) { } @ Override public void updateEntry ( ) { try { if ( link . startsWith ( BookUpdater . BOOKS_TW_PREFIX ) ) { entry . vid = link . substring ( BookUpdater . BOOKS_TW_PREFIX . length ( ) ) ; BookUpdater . AsyncUpdater async = new BookUpdater . AsyncUpdater ( ) { @ Override protected BookUpdater . OnUpdateStatusChangedListener . Status update ( URL ... urls ) { try { HttpClient httpclient = new DefaultHttpClient ( ) ; HttpGet httpget = new HttpGet ( urls [ 0 ] . toURI ( ) ) ; HttpResponse response = httpclient . execute ( httpget ) ; int statusCode = response . getStatusLine ( ) . getStatusCode ( ) ; if ( statusCode != ( HttpStatus . SC_OK ) ) { return BookUpdater . OnUpdateStatusChangedListener . Status . UNKNOWN ; } HttpEntity entity = response . getEntity ( ) ; String result = EntityUtils . toString ( entity , "big5" ) ; result = result . substring ( ( ( result . indexOf ( "?image=" ) ) + ( "?image=" . length ( ) ) ) ) ; entry . coverLink = result . substring ( 0 , result . indexOf ( "&" ) ) ; entry . cover = Util . urlToImage ( new URL ( entry . coverLink ) ) ; result = result . substring ( result . indexOf ( "class=\"prd001\"" ) ) ; result = result . substring ( result . indexOf ( "<h1" ) ) ; result = result . substring ( ( ( result . indexOf ( "<span>" ) ) + ( "<span>" . length ( ) ) ) ) ; entry . title = result . substring ( 0 , result . indexOf ( "<//span>" ) ) ; result = result . substring ( result . indexOf ( "class=\"prd002\"" ) ) ; result = result . substring ( ( ( result . indexOf ( "f=author\">" ) ) + ( "f=author\">" . length ( ) ) ) ) ; entry . author = result . substring ( 0 , result . indexOf ( "<//a>" ) ) ; result = result . substring ( result . indexOf ( "ISBN" ) ) ; result = result . substring ( ( ( result . indexOf ( "<dfn>" ) ) + ( "<dfn>" . length ( ) ) ) ) ; entry . isbn = result . substring ( 0 , result . indexOf ( "<//dfn>" ) ) ; } catch ( Exception e ) { Log . e ( TAG , e . toString ( ) ) ; return BookUpdater . OnUpdateStatusChangedListener . Status . UNKNOWN ; } return BookUpdater . OnUpdateStatusChangedListener . Status . OK_ENTRY ; } } ; URL url0 = new URL ( ( "http:////www.books.com.tw//exep//prod//booksfile.php?item=" + ( entry . vid ) ) ) ; async . execute ( url0 ) ; } else if ( link . startsWith ( BookUpdater . GOOGLE_BOOKS_PREFIX ) ) { entry . vid = link . substring ( BookUpdater . GOOGLE_BOOKS_PREFIX . length ( ) ) ; BookUpdater . AsyncUpdater async = new BookUpdater . AsyncUpdater ( ) { @ Override protected BookUpdater . OnUpdateStatusChangedListener . Status update ( URL ... urls ) { try { JSONObject json = new JSONObject ( Util . urlToString ( urls [ 0 ] ) ) ; json = json . getJSONObject ( "volumeInfo" ) ; String isbn10 = null ; String isbn13 = null ; JSONArray array = json . getJSONArray ( "industryIdentifiers" ) ; for ( int i = 0 ; i < ( array . length ( ) ) ; i ++ ) { JSONObject item = array . getJSONObject ( i ) ; if ( item . getString ( "type" ) . equals ( "ISBN_10" ) ) isbn10 = item . getString ( "identifier" ) ; else if ( item . getString ( "type" ) . equals ( "ISBN_13" ) ) isbn13 = item . getString ( "identifier" ) ; } if ( isbn13 != null ) entry . isbn = isbn13 ; else if ( isbn10 != null ) <START_BUG> entry . isbn = isbn10 ; <END_BUG> else return BookUpdater . OnUpdateStatusChangedListener . Status . BOOK_NOT_FOUND ; entry . title = json . getString ( "title" ) ; entry . author = parseJSONArray ( json . getJSONArray ( "authors" ) ) ; publishProgress ( ) ; if ( json . has ( "imageLinks" ) ) { entry . coverLink = json . getJSONObject ( "imageLinks" ) . getString ( "thumbnail" ) ; entry . cover = Util . urlToImage ( new URL ( entry . coverLink ) ) ; } } catch ( Exception e ) { Log . e ( TAG , e . toString ( ) ) ; return BookUpdater . OnUpdateStatusChangedListener . Status . UNKNOWN ; } return BookUpdater . OnUpdateStatusChangedListener . Status . OK_ENTRY ; } } ; URL url0 = new URL ( ( "https:////www.googleapis.com//books//v1//volumes//" + ( entry . vid ) ) ) ; async . execute ( url0 ) ; } } catch ( MalformedURLException e ) { Log . e ( TAG , e . toString ( ) ) ; } } @ Override public void updateInfo ( ) { } } protected String parseJSONArray ( JSONArray array ) throws JSONException { } }

Fix:
entry . isbn = Util . toIsbn13 ( isbn10 ) ;