55import com .esotericsoftware .kryo .kryo5 .Serializer ;
66import com .esotericsoftware .kryo .kryo5 .io .Input ;
77import com .esotericsoftware .kryo .kryo5 .io .Output ;
8- import com .esotericsoftware .kryo .kryo5 .serializers .JavaSerializer ;
98import com .esotericsoftware .kryo .kryo5 .serializers .MapSerializer ;
109import org .dizitart .no2 .collection .Document ;
1110import org .dizitart .no2 .collection .NitriteId ;
12- import org .dizitart .no2 .common .meta . Attributes ;
11+ import org .dizitart .no2 .common .DBValue ;
1312import org .dizitart .no2 .common .Fields ;
13+ import org .dizitart .no2 .common .meta .Attributes ;
1414import org .dizitart .no2 .common .tuples .Pair ;
15- import org .dizitart .no2 .common .DBValue ;
1615import org .dizitart .no2 .common .util .SpatialKey ;
1716import org .dizitart .no2 .index .BoundingBox ;
1817import 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 }
0 commit comments