Skip to content
Snippets Groups Projects
Verified Commit 7dea663f authored by Timm Fitschen's avatar Timm Fitschen
Browse files

BUG: fix NullPointerException when value is NULL in grpc serialization

parent 727d865e
No related branches found
No related tags found
2 merge requests!103Release 0.11.0,!98F grpc null values
Pipeline #39224 failed
...@@ -609,10 +609,11 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa ...@@ -609,10 +609,11 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa
@Override @Override
public void parseValue() throws Message { public void parseValue() throws Message {
if (!this.isParsed) { if (this.isParsed) {
this.isParsed = true; return;
setValue(getDatatype().parseValue(getValue()));
} }
this.isParsed = true;
if (getValue() != null) setValue(getDatatype().parseValue(getValue()));
} }
@Override @Override
......
...@@ -298,6 +298,8 @@ public class CaosDBToGrpcConverters { ...@@ -298,6 +298,8 @@ public class CaosDBToGrpcConverters {
} else if (value instanceof GenericValue) { } else if (value instanceof GenericValue) {
return convertGenericValue((GenericValue) value); return convertGenericValue((GenericValue) value);
} else if (value == null) {
return ScalarValue.newBuilder().setSpecialValue(SpecialValue.SPECIAL_VALUE_UNSPECIFIED);
} }
return null; return null;
} }
...@@ -735,8 +737,9 @@ public class CaosDBToGrpcConverters { ...@@ -735,8 +737,9 @@ public class CaosDBToGrpcConverters {
result = getSelectedValue(s.getSubselection(), referenced_entity); result = getSelectedValue(s.getSubselection(), referenced_entity);
} else if (v instanceof CollectionValue) { } else if (v instanceof CollectionValue) {
for (Value i : (CollectionValue) v) { for (Value i : (CollectionValue) v) {
if (i instanceof ReferenceValue) { Value wrapped = ((IndexedSingleValue) i).getWrapped();
EntityInterface referenced_entity = ((ReferenceValue) i).getEntity(); if (wrapped instanceof ReferenceValue) {
EntityInterface referenced_entity = ((ReferenceValue) wrapped).getEntity();
result = getSelectedValue(s.getSubselection(), referenced_entity); result = getSelectedValue(s.getSubselection(), referenced_entity);
results.add(result); results.add(result);
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment