Skip to content

Commit de9024f

Browse files
committed
fixes #1093
1 parent d550be1 commit de9024f

File tree

4 files changed

+38
-8
lines changed

4 files changed

+38
-8
lines changed

nitrite-rocksdb-adapter/src/main/java/org/dizitart/no2/rocksdb/formatter/NitriteSerializers.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
import com.esotericsoftware.kryo.kryo5.Serializer;
66
import com.esotericsoftware.kryo.kryo5.io.Input;
77
import com.esotericsoftware.kryo.kryo5.io.Output;
8-
import com.esotericsoftware.kryo.kryo5.serializers.JavaSerializer;
98
import com.esotericsoftware.kryo.kryo5.serializers.MapSerializer;
109
import org.dizitart.no2.collection.Document;
1110
import org.dizitart.no2.collection.NitriteId;
12-
import org.dizitart.no2.common.meta.Attributes;
11+
import org.dizitart.no2.common.DBValue;
1312
import org.dizitart.no2.common.Fields;
13+
import org.dizitart.no2.common.meta.Attributes;
1414
import org.dizitart.no2.common.tuples.Pair;
15-
import org.dizitart.no2.common.DBValue;
1615
import org.dizitart.no2.common.util.SpatialKey;
1716
import org.dizitart.no2.index.BoundingBox;
1817
import org.dizitart.no2.index.IndexDescriptor;
@@ -207,6 +206,19 @@ public BoundingBox read(Kryo kryo, Input input, Class<? extends BoundingBox> typ
207206
}
208207
}
209208

209+
private static class DBValueSerializer extends Serializer<DBValue> {
210+
@Override
211+
public void write(Kryo kryo, Output output, DBValue object) {
212+
kryo.writeObject(output, object.getValue());
213+
}
214+
215+
@Override
216+
public DBValue read(Kryo kryo, Input input, Class<? extends DBValue> type) {
217+
Object value = kryo.readObject(input, Object.class);
218+
return new DBValue((Comparable<?>) value);
219+
}
220+
}
221+
210222
private static class SpatialKeySerializer extends Serializer<SpatialKey> {
211223
@Override
212224
public void write(Kryo kryo, Output output, SpatialKey spatialKey) {
@@ -231,7 +243,7 @@ public static void registerAll(KryoObjectFormatter kryoObjectFormatter) {
231243
kryoObjectFormatter.registerSerializer(UserCredential.class, new UserCredentialSerializer());
232244
kryoObjectFormatter.registerSerializer(Attributes.class, new AttributesSerializer());
233245
kryoObjectFormatter.registerSerializer(Fields.class, new FieldsSerializer());
234-
kryoObjectFormatter.registerSerializer(DBValue.class, new JavaSerializer());
246+
kryoObjectFormatter.registerSerializer(DBValue.class, new DBValueSerializer());
235247
kryoObjectFormatter.registerSerializer(BoundingBox.class, new BoundingBoxSerializer());
236248
kryoObjectFormatter.registerSerializer(SpatialKey.class, new SpatialKeySerializer());
237249
}

nitrite-rocksdb-adapter/src/test/java/org/dizitart/no2/NitriteTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,24 @@ public void run() {
443443
db.close();
444444
}
445445

446+
@Test
447+
public void testIssue1093() {
448+
ObjectRepository<Receipt> repository = db.getRepository(Receipt.class);
449+
repository.clear();
450+
451+
Receipt receipt1 = new Receipt();
452+
receipt1.clientRef = "111-11111";
453+
receipt1.status = Receipt.Status.PREPARING;
454+
455+
Receipt receipt2 = new Receipt();
456+
receipt2.clientRef = "222-22222";
457+
receipt2.status = Receipt.Status.PREPARING;
458+
459+
repository = db.getRepository(Receipt.class);
460+
repository.update(receipt1, true);
461+
repository.update(receipt2, true);
462+
}
463+
446464
@Data
447465
@AllArgsConstructor
448466
@NoArgsConstructor

nitrite/src/main/java/org/dizitart/no2/collection/operation/IndexManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public void clearAll() {
113113
String indexMapName = indexMeta.getIndexMap();
114114
NitriteMap<?, ?> indexMap = nitriteStore.openMap(indexMapName, Object.class, Object.class);
115115
indexMap.clear();
116+
indexMap.close();
116117
}
117118
}
118119
}

nitrite/src/main/java/org/dizitart/no2/common/DBNull.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package org.dizitart.no2.common;
22

3+
import lombok.Getter;
4+
35
/**
46
* @author Anindya Chatterjee
57
* @since 1.0
68
*/
79
public class DBNull extends DBValue {
810
private static final long serialVersionUID = 1598819770L;
11+
@Getter
912
private static final DBNull instance = new DBNull();
1013

1114
private DBNull() {
@@ -22,10 +25,6 @@ public int compareTo(DBValue o) {
2225
return -1;
2326
}
2427

25-
public static DBNull getInstance() {
26-
return instance;
27-
}
28-
2928
@Override
3029
public String toString() {
3130
return null;

0 commit comments

Comments
 (0)