From 2d8304ba16e44b7533cdaae2a930061add1b58e0 Mon Sep 17 00:00:00 2001 From: Christian Banse Date: Sat, 3 Jul 2021 10:26:08 +0200 Subject: [PATCH] Fixed NPE in --- .../aisec/cpg/graph/edge/PropertyEdgeConverter.java | 4 ++-- .../cpg/graph/edge/PropertyEdgeConverterManager.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverter.java b/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverter.java index 9693ebf517..4b4b8111b6 100644 --- a/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverter.java +++ b/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverter.java @@ -47,10 +47,10 @@ public class PropertyEdgeConverter implements CompositeAttributeConverter> serializer; + private final Map> serializer; // Maps a string (key of the property) to a function that deserializes the property - private Map> deserializer; + private final Map> deserializer; public PropertyEdgeConverter() { serializer = PropertyEdgeConverterManager.getInstance().getSerializer(); diff --git a/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverterManager.java b/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverterManager.java index c66f3514e9..c695f5e25e 100644 --- a/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverterManager.java +++ b/cpg-library/src/main/java/de/fraunhofer/aisec/cpg/graph/edge/PropertyEdgeConverterManager.java @@ -40,8 +40,9 @@ * and which require a custom converter. */ public class PropertyEdgeConverterManager { + @NonNull - private static PropertyEdgeConverterManager INSTANCE = new PropertyEdgeConverterManager(); + private static final PropertyEdgeConverterManager INSTANCE = new PropertyEdgeConverterManager(); private PropertyEdgeConverterManager() { // Add here converters for PropertyEdges @@ -49,7 +50,7 @@ private PropertyEdgeConverterManager() { TemplateDeclaration.TemplateInitialization.class.getName(), Object::toString); this.addDeserializer( - "INSTANTIATION", (s -> TemplateDeclaration.TemplateInitialization.valueOf(s.toString()))); + "INSTANTIATION", (s -> s != null ? TemplateDeclaration.TemplateInitialization.valueOf(s.toString()) : null)); } public static PropertyEdgeConverterManager getInstance() { @@ -57,10 +58,10 @@ public static PropertyEdgeConverterManager getInstance() { } // Maps a class to a function that serialized the object from the given class - private Map> serializer = new HashMap<>(); + private final Map> serializer = new HashMap<>(); // Maps a string (key of the property) to a function that deserializes the property - private Map> deserializer = new HashMap<>(); + private final Map> deserializer = new HashMap<>(); public void addSerializer(String clazz, Function func) { serializer.put(clazz, func);