From dfedb0a5e05006cedc8a04e41ccc79229ad510b2 Mon Sep 17 00:00:00 2001 From: Jordan Zimmerman Date: Sat, 18 Feb 2023 08:45:32 +0000 Subject: [PATCH] In some JDKs the accessors list can be null Possible fix for #139 --- .../recordbuilder/processor/InternalRecordBuilderProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java index ba28e1b..7587688 100644 --- a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java +++ b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/InternalRecordBuilderProcessor.java @@ -140,7 +140,7 @@ class InternalRecordBuilderProcessor { } private List buildRecordComponents(TypeElement record) { - var accessorAnnotations = record.getRecordComponents().stream().map(e -> e.getAccessor().getAnnotationMirrors()).collect(Collectors.toList()); + var accessorAnnotations = record.getRecordComponents().stream().map(e -> (e.getAccessor() != null) ? e.getAccessor().getAnnotationMirrors() : List.of()).collect(Collectors.toList()); var canonicalConstructorAnnotations = ElementUtils.findCanonicalConstructor(record).map(constructor -> ((ExecutableElement) constructor).getParameters().stream().map(Element::getAnnotationMirrors).collect(Collectors.toList())).orElse(List.of()); var recordComponents = record.getRecordComponents(); return IntStream.range(0, recordComponents.size())