File tree Expand file tree Collapse file tree 2 files changed +12
-2
lines changed
src/main/java/io/avaje/inject/generator Expand file tree Collapse file tree 2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 5555 <version >1.5</version >
5656 <scope >test</scope >
5757 </dependency >
58-
58+
5959 <dependency >
6060 <groupId >io.avaje</groupId >
6161 <artifactId >avaje-http-client</artifactId >
Original file line number Diff line number Diff line change 2424import javax .lang .model .element .ElementKind ;
2525import javax .lang .model .element .Modifier ;
2626import javax .lang .model .element .ModuleElement ;
27+ import javax .lang .model .element .ModuleElement .ProvidesDirective ;
2728import javax .lang .model .element .TypeElement ;
2829import javax .lang .model .util .ElementFilter ;
2930
@@ -318,13 +319,22 @@ private static Stream<TypeElement> injectExtensions() {
318319
319320 final var checkDirectives =
320321 allModules .stream ()
321- .flatMap (m -> ElementFilter . providesIn ( m . getDirectives ()). stream () )
322+ .flatMap (ExternalProvider :: providesDirectives )
322323 .filter (ExternalProvider ::isInjectExtension )
323324 .flatMap (p -> p .getImplementations ().stream ());
324325
325326 return Stream .concat (checkEnclosing , checkDirectives );
326327 }
327328
329+ // Automatic modules throw an NPE for getDirectives on JDT
330+ private static Stream <ProvidesDirective > providesDirectives (ModuleElement m ) {
331+ try {
332+ return ElementFilter .providesIn (m .getDirectives ()).stream ();
333+ } catch (NullPointerException npe ) {
334+ return Stream .of ();
335+ }
336+ }
337+
328338 // when a project's module-info is misconfigured a certain way, getEnclosedElements throws an error
329339 private static Stream <? extends Element > getEnclosed (Element e ) {
330340 try {
You can’t perform that action at this time.
0 commit comments