FIX: NPE when accessing mutableNext in EBI

This commit is contained in:
Jonas Pöhler
2021-08-20 15:13:42 +02:00
parent bf2d75e55e
commit 5b10c053de
2 changed files with 26 additions and 1 deletions
@@ -1232,7 +1232,8 @@ public final class EntityBeanIntercept implements Serializable {
if (mutableNext == null) {
return null;
}
return mutableNext[propertyIndex].content();
final MutableValueNext next = mutableNext[propertyIndex];
return next != null ? next.content() : null;
}
}
@@ -5,6 +5,8 @@ import io.ebean.DB;
import org.junit.Test;
import org.tests.model.json.EBasicOldValue;
import java.util.ArrayList;
import static org.assertj.core.api.Assertions.assertThat;
public class TestJsonNullValues extends BaseTestCase {
@@ -39,4 +41,26 @@ public class TestJsonNullValues extends BaseTestCase {
assertThat(bean.getIntMap()).isEmpty();
}
@Test
public void testSetOneToNullAnotherToEmpty() {
EBasicOldValue bean = new EBasicOldValue();
DB.save(bean);
bean = DB.find(EBasicOldValue.class, bean.getId());
bean.setStringList(null);
bean.setStringSet(null);
DB.save(bean);
bean = DB.find(EBasicOldValue.class, bean.getId());
bean.setStringList(new ArrayList<>());
bean.setStringSet(null);
DB.save(bean);
bean = DB.find(EBasicOldValue.class, bean.getId());
assertThat(bean.getStringList()).isEmpty();
assertThat(bean.getStringSet()).isEmpty();
}
}