Skip to content

Commit

Permalink
#823 Fix ArrayIndexOutOfBoundsException in binary search logic (#824)
Browse files Browse the repository at this point in the history
  • Loading branch information
theigl authored Apr 22, 2021
1 parent 922d8f3 commit 314c678
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ private CachedField[] readFields (Kryo kryo, Input input) {
}
} else {
int low, mid, high, compare;
int lastFieldIndex = allFields.length;
int lastFieldIndex = allFields.length - 1;
outer:
for (int i = 0; i < length; i++) {
String schemaName = names[i];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,22 @@ private void testRemovedMultipleFieldsFromClassWithManyFields (int length, boole
assertEquals(object1, object2);
}

@Test
void testRemoveAllFieldsFromClassWithManyFields () {
CompatibleFieldSerializer serializer = new CompatibleFieldSerializer<>(kryo, ClassWithManyFields.class);
kryo.register(ClassWithManyFields.class, serializer);

ClassWithManyFields object1 = new ClassWithManyFields();
roundTrip(118, object1);

for (FieldSerializer.CachedField field : serializer.getFields()) {
serializer.removeField(field.getName());
}

ClassWithManyFields object2 = (ClassWithManyFields)kryo.readClassAndObject(input);
assertEquals(object1, object2);
}

@Test
void testExtendedClass () {
testExtendedClass(270, false, false);
Expand Down

0 comments on commit 314c678

Please sign in to comment.