diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/spring/SpringContextScanner.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/spring/SpringContextScanner.java index 79a79ea..5d19c92 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/spring/SpringContextScanner.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/spring/SpringContextScanner.java @@ -142,12 +142,25 @@ public class SpringContextScanner extends ASTVisitor { private void collectAssignableTypes(ITypeBinding binding, Set types) { if (binding == null) return; - types.add(binding.getQualifiedName()); - types.add(binding.getErasure().getQualifiedName()); // Handles generics (e.g., List -> List) + + String qName = binding.getQualifiedName(); + if (qName != null && !qName.isEmpty()) { + types.add(qName); + } + + ITypeBinding erasure = binding.getErasure(); + if (erasure != null) { + String erasureName = erasure.getQualifiedName(); + if (erasureName != null && !erasureName.isEmpty()) { + types.add(erasureName); + } + } collectAssignableTypes(binding.getSuperclass(), types); - for (ITypeBinding iface : binding.getInterfaces()) { - collectAssignableTypes(iface, types); + if (binding.getInterfaces() != null) { + for (ITypeBinding iface : binding.getInterfaces()) { + collectAssignableTypes(iface, types); + } } }