Skip to content

Commit ad1cc30

Browse files
authored
Merge pull request #734 from Netflix/empty-field-schema
handle the schema of empty field and not throw an NPE
2 parents 5035496 + 32ebe37 commit ad1cc30

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

hollow-explorer-ui/src/main/java/com/netflix/hollow/explorer/ui/model/SchemaDisplayField.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,11 @@ public SchemaDisplayField(String fieldPath, HollowCollectionSchema parentSchema)
3636
this.fieldName = "element";
3737
this.fieldType = FieldType.REFERENCE;
3838
this.isSearchable = false;
39-
this.referencedType = new SchemaDisplay(parentSchema.getElementTypeState().getSchema(), fieldPath);
39+
if (parentSchema.getElementTypeState() != null) {
40+
this.referencedType = new SchemaDisplay(parentSchema.getElementTypeState().getSchema(), fieldPath);
41+
} else {
42+
this.referencedType = null;
43+
}
4044
}
4145

4246
public SchemaDisplayField(String fieldPath, HollowMapSchema parentSchema, int fieldNumber) {
@@ -52,11 +56,18 @@ public SchemaDisplayField(String fieldPath, HollowObjectSchema parentSchema, int
5256
this.fieldName = parentSchema.getFieldName(fieldNumber);
5357
this.fieldType = parentSchema.getFieldType(fieldNumber);
5458
this.isSearchable = isSearchable(parentSchema, fieldNumber);
55-
this.referencedType = fieldType == FieldType.REFERENCE ? new SchemaDisplay(parentSchema.getReferencedTypeState(fieldNumber).getSchema(), fieldPath) : null;
59+
if (parentSchema.getReferencedTypeState(fieldNumber) != null) {
60+
this.referencedType = fieldType == FieldType.REFERENCE ? new SchemaDisplay(parentSchema.getReferencedTypeState(fieldNumber).getSchema(), fieldPath) : null;
61+
} else {
62+
this.referencedType = null;
63+
}
5664
}
5765

5866
private boolean isSearchable(HollowObjectSchema schema, int fieldNumber) {
5967
if(schema.getFieldType(fieldNumber) == FieldType.REFERENCE) {
68+
if (schema.getReferencedTypeState(fieldNumber) == null) {
69+
return false;
70+
}
6071
if(schema.getReferencedTypeState(fieldNumber).getSchema().getSchemaType() != SchemaType.OBJECT)
6172
return false;
6273
HollowObjectSchema refObjSchema = (HollowObjectSchema)schema.getReferencedTypeState(fieldNumber).getSchema();

0 commit comments

Comments
 (0)