@@ -89,6 +89,7 @@ class ConfigMetadataHandler {
8989 private TypeMirror builderType ;
9090 private TypeMirror configType ;
9191 private TypeMirror erasedListType ;
92+ private TypeMirror erasedIterableType ;
9293 private TypeMirror erasedSetType ;
9394 private TypeMirror erasedMapType ;
9495
@@ -111,6 +112,7 @@ synchronized void init(ProcessingEnvironment processingEnv) {
111112 configType = elementUtils .getTypeElement ("io.helidon.config.Config" ).asType ();
112113 erasedListType = typeUtils .erasure (elementUtils .getTypeElement (List .class .getName ()).asType ());
113114 erasedSetType = typeUtils .erasure (elementUtils .getTypeElement (Set .class .getName ()).asType ());
115+ erasedIterableType = typeUtils .erasure (elementUtils .getTypeElement (Iterable .class .getName ()).asType ());
114116 erasedMapType = typeUtils .erasure (elementUtils .getTypeElement (Map .class .getName ()).asType ());
115117 }
116118
@@ -570,7 +572,8 @@ private OptionType type(ConfiguredOptionData annotation, ExecutableElement eleme
570572 TypeMirror paramType = parameter .asType ();
571573 TypeMirror erasedType = typeUtils .erasure (paramType );
572574
573- if (typeUtils .isSameType (erasedType , erasedListType ) || typeUtils .isSameType (erasedType , erasedSetType )) {
575+ if (typeUtils .isSameType (erasedType , erasedListType ) || typeUtils .isSameType (erasedType , erasedSetType )
576+ || typeUtils .isSameType (erasedType , erasedIterableType )) {
574577 DeclaredType type = (DeclaredType ) paramType ;
575578 TypeMirror genericType = type .getTypeArguments ().get (0 );
576579 return new OptionType (genericType .toString (), "LIST" );
@@ -697,7 +700,7 @@ String toConfigKey(String methodName) {
697700 }
698701
699702 static List <AllowedValue > allowedValues (Elements elementUtils , TypeElement typeElement ) {
700- if (typeElement .getKind () == ElementKind .ENUM ) {
703+ if (typeElement != null && typeElement .getKind () == ElementKind .ENUM ) {
701704 return typeElement .getEnclosedElements ()
702705 .stream ()
703706 .filter (element -> element .getKind ().equals (ElementKind .ENUM_CONSTANT ))
0 commit comments