eclipse-sisu / sisu-project

Sisu Inject
https://www.eclipse.org/sisu
Eclipse Public License 2.0
17 stars 15 forks source link

Fix SpaceScanner to use latest ASM API version #57

Closed bentmann closed 1 year ago

bentmann commented 2 years ago

Follow-up to https://github.com/eclipse/sisu.inject/pull/34

I ran into some issues trying to update from Sisu 0.3.5 to 0.9.0.M1 on a codebase compiled with Java 14 due to bindings being missing. Debug logs revealed errors like below for.

DEBUG: Sisu - Problem scanning: file:/...
java.lang.UnsupportedOperationException: NestHost requires ASM7
    at org.eclipse.sisu.space.asm.ClassVisitor.visitNestHost(ClassVisitor.java:165)
    at org.eclipse.sisu.space.asm.ClassReader.accept(ClassReader.java:586)
    at org.eclipse.sisu.space.asm.ClassReader.accept(ClassReader.java:424)
    at org.eclipse.sisu.space.SpaceScanner.accept(SpaceScanner.java:102)
    at org.eclipse.sisu.space.SpaceScanner.accept(SpaceScanner.java:78)
    at org.eclipse.sisu.space.SpaceModule.scanForElements(SpaceModule.java:169)
    at org.eclipse.sisu.space.SpaceModule$1.configure(SpaceModule.java:183)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409)
    at com.google.inject.spi.Elements.getElements(Elements.java:108)
    at com.google.inject.spi.Elements.getElements(Elements.java:91)
    at org.eclipse.sisu.space.SpaceModule.recordAndReplayElements(SpaceModule.java:179)
    at org.eclipse.sisu.space.SpaceModule.configure(SpaceModule.java:126)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409)
    at com.google.inject.spi.Elements.getElements(Elements.java:108)
    at com.google.inject.spi.Elements.getElements(Elements.java:101)
    at org.eclipse.sisu.wire.WireModule.configure(WireModule.java:75)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:409)
    at com.google.inject.spi.Elements.getElements(Elements.java:108)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
    at com.google.inject.Guice.createInjector(Guice.java:87)
    at com.google.inject.Guice.createInjector(Guice.java:69)
    at com.google.inject.Guice.createInjector(Guice.java:59)
    at org.eclipse.sisu.launch.InjectedTest.setUp(InjectedTest.java:67)