diff --git a/src/main/java/br/ufrgs/inf/prosoft/memoizeit/OccurrenceConcrete.java b/src/main/java/br/ufrgs/inf/prosoft/memoizeit/OccurrenceConcrete.java
index 0c910f6..7b4a725 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/memoizeit/OccurrenceConcrete.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/memoizeit/OccurrenceConcrete.java
@@ -12,6 +12,7 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -42,6 +43,9 @@ public class OccurrenceConcrete extends Occurrence {
}
private void removeUnusedFields(Map<String, Object> map, String parameterType, Node<String> methodNode) {
+ if (map == null) {
+ return;
+ }
Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
@@ -59,7 +63,7 @@ public class OccurrenceConcrete extends Occurrence {
String parameterType = parameter.getType();
if (parameter.getData() instanceof Collection) {
Collection collection = (Collection) parameter.getData();
- if (!collection.isEmpty() && collection.stream().findAny().get() instanceof Map) {
+ if (!collection.isEmpty() && collection.stream().filter(Objects::nonNull).findAny().get() instanceof Map) {
Collection<Map<String, Object>> cast = collection;
cast.forEach(map -> removeUnusedFields(map, parameterType, methodNode));
}