Merge pull request #2316 from FOCONIS/pr/bugfix/json-null-formatValue

Fix: setting json values to null was throwing a NPE when persisting
This commit is contained in:
Rob Bygrave authored and GitHub committed 2021-08-16 22:31:47 +12:00
commit a2b19d46e1
3 files changed
+42 -6

No files matched your search

@@ -122,9 +122,6 @@ class ScalarTypeJsonList {
@Override
public final String formatValue(List value) {
if (value.isEmpty()) {
return "[]";
}
try {
return EJson.write(value);
} catch (IOException e) {
@@ -122,9 +122,6 @@ final class ScalarTypeJsonSet {
@Override
public final String formatValue(Set value) {
if (value.isEmpty()) {
return "[]";
}
try {
return EJson.write(value);
} catch (IOException e) {
@@ -0,0 +1,42 @@
package org.tests.json;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import org.junit.Test;
import org.tests.model.json.EBasicOldValue;
import static org.assertj.core.api.Assertions.assertThat;
public class TestJsonNullValues extends BaseTestCase {
@Test
public void testSetToNull() {
EBasicOldValue bean = new EBasicOldValue();
DB.save(bean);
bean = DB.find(EBasicOldValue.class, bean.getId());
bean.setStringList(null);
bean.setStringSet(null);
bean.setObjectMap(null);
bean.setLongList(null);
bean.setLongSet(null);
bean.setLongMap(null);
bean.setIntList(null);
bean.setIntSet(null);
bean.setIntMap(null);
DB.save(bean);
bean = DB.find(EBasicOldValue.class, bean.getId());
assertThat(bean.getStringList()).isEmpty();
assertThat(bean.getStringSet()).isEmpty();
assertThat(bean.getObjectMap()).isEmpty();
assertThat(bean.getLongList()).isEmpty();
assertThat(bean.getLongSet()).isEmpty();
assertThat(bean.getLongMap()).isEmpty();
assertThat(bean.getIntList()).isEmpty();
assertThat(bean.getIntSet()).isEmpty();
assertThat(bean.getIntMap()).isEmpty();
}
}