File tree 2 files changed +12
-2
lines changed
src/main/java/io/avaje/inject/generator
2 files changed +12
-2
lines changed Original file line number Diff line number Diff line change 55
55
<version >1.5</version >
56
56
<scope >test</scope >
57
57
</dependency >
58
-
58
+
59
59
<dependency >
60
60
<groupId >io.avaje</groupId >
61
61
<artifactId >avaje-http-client</artifactId >
Original file line number Diff line number Diff line change 24
24
import javax .lang .model .element .ElementKind ;
25
25
import javax .lang .model .element .Modifier ;
26
26
import javax .lang .model .element .ModuleElement ;
27
+ import javax .lang .model .element .ModuleElement .ProvidesDirective ;
27
28
import javax .lang .model .element .TypeElement ;
28
29
import javax .lang .model .util .ElementFilter ;
29
30
@@ -318,13 +319,22 @@ private static Stream<TypeElement> injectExtensions() {
318
319
319
320
final var checkDirectives =
320
321
allModules .stream ()
321
- .flatMap (m -> ElementFilter . providesIn ( m . getDirectives ()). stream () )
322
+ .flatMap (ExternalProvider :: providesDirectives )
322
323
.filter (ExternalProvider ::isInjectExtension )
323
324
.flatMap (p -> p .getImplementations ().stream ());
324
325
325
326
return Stream .concat (checkEnclosing , checkDirectives );
326
327
}
327
328
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
+
328
338
// when a project's module-info is misconfigured a certain way, getEnclosedElements throws an error
329
339
private static Stream <? extends Element > getEnclosed (Element e ) {
330
340
try {
You can’t perform that action at this time.
0 commit comments