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.main
commit
bfb4c3aa7f
|
@ -561,8 +561,7 @@ public final class BinaryDictDecoderUtils {
|
||||||
*/
|
*/
|
||||||
@UsedForTesting
|
@UsedForTesting
|
||||||
/* package */ static FusionDictionary readDictionaryBinary(final Ver3DictDecoder dictDecoder,
|
/* package */ static FusionDictionary readDictionaryBinary(final Ver3DictDecoder dictDecoder,
|
||||||
final FusionDictionary dict) throws FileNotFoundException, IOException,
|
final FusionDictionary dict) throws IOException, UnsupportedFormatException {
|
||||||
UnsupportedFormatException {
|
|
||||||
// Read header
|
// Read header
|
||||||
final FileHeader fileHeader = dictDecoder.readHeader();
|
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.makedict.FusionDictionary.WeightedString;
|
||||||
import com.android.inputmethod.latin.utils.JniUtils;
|
import com.android.inputmethod.latin.utils.JniUtils;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -38,6 +40,7 @@ import java.util.TreeMap;
|
||||||
*/
|
*/
|
||||||
@UsedForTesting
|
@UsedForTesting
|
||||||
public class Ver3DictDecoder implements DictDecoder {
|
public class Ver3DictDecoder implements DictDecoder {
|
||||||
|
private static final String TAG = Ver3DictDecoder.class.getSimpleName();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
JniUtils.loadNativeLibrary();
|
JniUtils.loadNativeLibrary();
|
||||||
|
@ -308,7 +311,21 @@ public class Ver3DictDecoder implements DictDecoder {
|
||||||
if (mDictBuffer == null) {
|
if (mDictBuffer == null) {
|
||||||
openDictBuffer();
|
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
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue