From 2dd0c1beddceb6f849964d3599ec1fef79e71bbd Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Mon, 8 Apr 2013 06:23:24 +0400 Subject: [PATCH] fixed Book object creation --- .../fbreader/book/BookCollection.java | 28 +++++++------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/src/org/geometerplus/fbreader/book/BookCollection.java b/src/org/geometerplus/fbreader/book/BookCollection.java index 301339344..881726920 100644 --- a/src/org/geometerplus/fbreader/book/BookCollection.java +++ b/src/org/geometerplus/fbreader/book/BookCollection.java @@ -174,7 +174,7 @@ public class BookCollection extends AbstractBookCollection { } } - public boolean saveBook(Book book, boolean force) { + public synchronized boolean saveBook(Book book, boolean force) { if (book == null) { return false; } @@ -682,19 +682,14 @@ public class BookCollection extends AbstractBookCollection { } // Step 3: add help file - try { - final ZLFile helpFile = BookUtil.getHelpFile(); - Book helpBook = savedBooksByFileId.get(fileInfos.getId(helpFile)); - if (helpBook == null) { - helpBook = new Book(helpFile); - } - saveBook(helpBook, false); - // saved - addBook(helpBook, false); - } catch (BookReadingException e) { - // that's impossible - e.printStackTrace(); + final ZLFile helpFile = BookUtil.getHelpFile(); + Book helpBook = savedBooksByFileId.get(fileInfos.getId(helpFile)); + if (helpBook == null) { + helpBook = getBookByFile(helpFile); } + saveBook(helpBook, false); + // saved + addBook(helpBook, false); // Step 4: save changes into database fileInfos.save(); @@ -774,12 +769,9 @@ public class BookCollection extends AbstractBookCollection { ); } } else { - try { - final Book book = new Book(file); + final Book book = getBookByFile(file); + if (book != null) { newBooks.add(book); - return; - } catch (BookReadingException e) { - // ignore } } }