- RAFList.create(raf, indexEntrySerializer, raf.getFilePointer()), CACHE_SIZE);
- if (dict.dictFileVersion >= 4) {
- stoplist = new SerializableSerializer<Set<String>>().read(raf);
+ RAFList.create(raf, new IndexEntrySerializer(),
+ dict.dictFileVersion, dict.dictInfo + " idx " + languageCode + ": "), CACHE_SIZE, true);
+ if (dict.dictFileVersion >= 7) {
+ int count = StringUtil.readVarInt(raf);
+ stoplist = new HashSet<>(count);
+ for (int i = 0; i < count; ++i) {
+ stoplist.add(raf.readUTF());
+ }
+ } else if (dict.dictFileVersion >= 4) {
+ stoplist = new HashSet<>();
+ raf.readInt(); // length
+ raf.skipBytes(18);
+ byte b = raf.readByte();
+ raf.skipBytes(b == 'L' ? 71 : 33);
+ while ((b = raf.readByte()) == 0x74) {
+ stoplist.add(raf.readUTF());
+ }
+ if (b != 0x78) throw new IOException("Invalid data in dictionary stoplist!");