am d5a3c593
: Remove a broken dictionary file when fail to read a dictionary file.
* commit 'd5a3c593dba3475f5e72b1fbe53cee5ed17a7529': Remove a broken dictionary file when fail to read a dictionary file.
This commit is contained in:
commit
bfb4c3aa7f
2 changed files with 19 additions and 3 deletions
|
@ -561,8 +561,7 @@ public final class BinaryDictDecoderUtils {
|
|||
*/
|
||||
@UsedForTesting
|
||||
/* package */ static FusionDictionary readDictionaryBinary(final Ver3DictDecoder dictDecoder,
|
||||
final FusionDictionary dict) throws FileNotFoundException, IOException,
|
||||
UnsupportedFormatException {
|
||||
final FusionDictionary dict) throws IOException, UnsupportedFormatException {
|
||||
// Read header
|
||||
final FileHeader fileHeader = dictDecoder.readHeader();
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@ import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
|
|||
import com.android.inputmethod.latin.makedict.FusionDictionary.WeightedString;
|
||||
import com.android.inputmethod.latin.utils.JniUtils;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
|
@ -38,6 +40,7 @@ import java.util.TreeMap;
|
|||
*/
|
||||
@UsedForTesting
|
||||
public class Ver3DictDecoder implements DictDecoder {
|
||||
private static final String TAG = Ver3DictDecoder.class.getSimpleName();
|
||||
|
||||
static {
|
||||
JniUtils.loadNativeLibrary();
|
||||
|
@ -308,7 +311,21 @@ public class Ver3DictDecoder implements DictDecoder {
|
|||
if (mDictBuffer == null) {
|
||||
openDictBuffer();
|
||||
}
|
||||
return BinaryDictDecoderUtils.readDictionaryBinary(this, dict);
|
||||
try {
|
||||
return BinaryDictDecoderUtils.readDictionaryBinary(this, dict);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "The dictionary " + mDictionaryBinaryFile.getName() + " is broken.", e);
|
||||
if (!mDictionaryBinaryFile.delete()) {
|
||||
Log.e(TAG, "Failed to delete the broken dictionary.");
|
||||
}
|
||||
throw e;
|
||||
} catch (UnsupportedFormatException e) {
|
||||
Log.e(TAG, "The dictionary " + mDictionaryBinaryFile.getName() + " is broken.", e);
|
||||
if (!mDictionaryBinaryFile.delete()) {
|
||||
Log.e(TAG, "Failed to delete the broken dictionary.");
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue