diff --git a/src/org/geometerplus/zlibrary/text/model/CachedCharStorage.java b/src/org/geometerplus/zlibrary/text/model/CachedCharStorage.java index 19862ab48..645458230 100644 --- a/src/org/geometerplus/zlibrary/text/model/CachedCharStorage.java +++ b/src/org/geometerplus/zlibrary/text/model/CachedCharStorage.java @@ -55,7 +55,7 @@ public final class CachedCharStorage { File file = new File(fileName(index)); int size = (int)file.length(); if (size < 0) { - throw new CachedCharStorageException("Error during reading " + fileName(index)); + throw new CachedCharStorageException("Error during reading " + fileName(index) + "; size = " + size); } block = new char[size / 2]; InputStreamReader reader = @@ -63,12 +63,13 @@ public final class CachedCharStorage { new FileInputStream(file), "UTF-16LE" ); - if (reader.read(block) != block.length) { - throw new CachedCharStorageException("Error during reading " + fileName(index)); + final int rd = reader.read(block); + if (rd != block.length) { + throw new CachedCharStorageException("Error during reading " + fileName(index) + "; " + rd + " != " + block.length); } reader.close(); } catch (IOException e) { - throw new CachedCharStorageException("Error during reading " + fileName(index)); + throw new CachedCharStorageException("Error during reading " + fileName(index), e); } myArray.set(index, new WeakReference(block)); } diff --git a/src/org/geometerplus/zlibrary/text/model/CachedCharStorageException.java b/src/org/geometerplus/zlibrary/text/model/CachedCharStorageException.java index 1f33c4a24..df5a3d7ad 100644 --- a/src/org/geometerplus/zlibrary/text/model/CachedCharStorageException.java +++ b/src/org/geometerplus/zlibrary/text/model/CachedCharStorageException.java @@ -25,4 +25,8 @@ public final class CachedCharStorageException extends RuntimeException { public CachedCharStorageException(String message) { super(message); } + + public CachedCharStorageException(String message, Throwable cause) { + super(message, cause); + } }