Uploaded image for project: 'LDAP Connector'
  1. LDAP Connector
  2. MGNLLDAP-131

Magnolia LDAP-Tester doesn't work with Java 11+

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • 1.10.3
    • Yes

      Steps to reproduce

      1.  add magnolia-ldap-tester.jar to your tomcat server
      2.  run magnolia-ldap-tester with command as seen here

       

      Expected results

      magnolia-ldap-test results as seen in the documentation.

      Actual results

       

      Oct 12, 2021 12:17:24 PM com.google.inject.internal.MessageProcessor visit 2INFO: An exception was caught and reported. Message: java.lang.ClassNotFoundException: javax.annotation.PreDestroy 3java.lang.TypeNotPresentException: Type javax.annotation.PreDestroy not present 4 at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 5 at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 6 at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 7 at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 8 at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 9 at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 10 at java.base/sun.reflect.generics.repository.FieldRepository.computeGenericType(FieldRepository.java:90) 11 at java.base/sun.reflect.generics.repository.FieldRepository.getGenericType(FieldRepository.java:82) 12 at java.base/java.lang.reflect.Field.getGenericType(Field.java:268) 13 at com.google.inject.TypeLiteral.getFieldType(TypeLiteral.java:271) 14 at com.google.inject.spi.InjectionPoint.<init>(InjectionPoint.java:94) 15 at com.google.inject.spi.InjectionPoint$InjectableField.toInjectionPoint(InjectionPoint.java:463) 16 at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:749) 17 at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380) 18 at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:399) 19 at com.google.inject.internal.BindingBuilder.toInstance(BindingBuilder.java:84) 20 at com.mycila.guice.ext.jsr250.Jsr250Module.configure(Jsr250Module.java:47) 21 at com.google.inject.AbstractModule.configure(AbstractModule.java:62) 22 at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) 23 at com.google.inject.AbstractModule.install(AbstractModule.java:122) 24 at info.magnolia.objectfactory.guice.GuiceComponentProviderBuilder$1.configure(GuiceComponentProviderBuilder.java:128) 25 at com.google.inject.AbstractModule.configure(AbstractModule.java:62) 26 at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) 27 at com.google.inject.spi.Elements.getElements(Elements.java:110) 28 at com.google.inject.util.Modules$OverrideModule.configure(Modules.java:177) 29 at com.google.inject.AbstractModule.configure(AbstractModule.java:62) 30 at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340) 31 at com.google.inject.spi.Elements.getElements(Elements.java:110) 32 at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138) 33 at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104) 34 at com.google.inject.Guice.createInjector(Guice.java:96) 35 at com.google.inject.Guice.createInjector(Guice.java:84) 36 at info.magnolia.objectfactory.guice.GuiceComponentProviderBuilder.build(GuiceComponentProviderBuilder.java:149) 37 at info.magnolia.jaas.sp.ldap.Tester.prepare(Tester.java:118) 38 at info.magnolia.jaas.sp.ldap.Tester.doMain(Tester.java:88) 39 at info.magnolia.ldap.tool.LDAPTester.main(LDAPTester.java:84) 40Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy 41 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 42 at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 43 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 44 at java.base/java.lang.Class.forName0(Native Method) 45 at java.base/java.lang.Class.forName(Class.java:398) 46 at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) 47 ... 35 more 48 49Exception in thread "main" com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.TypeNotPresentException: Type javax.annotation.PreDestroy not present 50 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2218) 51 at com.google.common.cache.LocalCache.get(LocalCache.java:4147) 52 at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4151) 53 at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5140) 54 at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5146) 55 at com.google.inject.internal.FailableCache.get(FailableCache.java:48) 56 at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50) 57 at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136) 58 at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:533) 59 at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:160) 60 at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44) 61 at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:123) 62 at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) 63 at com.google.inject.Guice.createInjector(Guice.java:96) 64 at com.google.inject.Guice.createInjector(Guice.java:84) 65 at info.magnolia.objectfactory.guice.GuiceComponentProviderBuilder.build(GuiceComponentProviderBuilder.java:149) 66 at info.magnolia.jaas.sp.ldap.Tester.prepare(Tester.java:118) 67 at info.magnolia.jaas.sp.ldap.Tester.doMain(Tester.java:88) 68 at info.magnolia.ldap.tool.LDAPTester.main(LDAPTester.java:84) 69Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.TypeNotPresentException: Type javax.annotation.PreDestroy not present 70 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2218) 71 at com.google.common.cache.LocalCache.get(LocalCache.java:4147) 72 at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4151) 73 at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5140) 74 at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5146) 75 at com.google.inject.internal.FailableCache.get(FailableCache.java:48) 76 at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:68) 77 at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:74) 78 at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29) 79 at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37) 80 at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33) 81 at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37) 82 at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3708) 83 at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2416) 84 at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2299) 85 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2212) 86 ... 18 more 87Caused by: java.lang.TypeNotPresentException: Type javax.annotation.PreDestroy not present 88 at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 89 at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 90 at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 91 at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 92 at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 93 at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 94 at java.base/sun.reflect.generics.repository.FieldRepository.computeGenericType(FieldRepository.java:90) 95 at java.base/sun.reflect.generics.repository.FieldRepository.getGenericType(FieldRepository.java:82) 96 at java.base/java.lang.reflect.Field.getGenericType(Field.java:268) 97 at com.google.inject.TypeLiteral.getFieldType(TypeLiteral.java:271) 98 at com.google.inject.spi.InjectionPoint.<init>(InjectionPoint.java:94) 99 at com.google.inject.spi.InjectionPoint$InjectableField.toInjectionPoint(InjectionPoint.java:463) 100 at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:749) 101 at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:380) 102 at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:93) 103 at com.google.inject.internal.MembersInjectorStore.access$000(MembersInjectorStore.java:37) 104 at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:45) 105 at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:42) 106 at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37) 107 at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3708) 108 at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2416) 109 at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2299) 110 at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2212) 111 ... 33 more 112Caused by: java.lang.ClassNotFoundException: javax.annotation.PreDestroy 113 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) 114 at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) 115 at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 116 at java.base/java.lang.Class.forName0(Native Method) 117 at java.base/java.lang.Class.forName(Class.java:398) 118 at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) 119 ... 55 more

       

       This error occurs due to the missing PreDestroy Annotation which is part of Java EE, which was deprecated in Java 9 and removed in Java 11.

      Workaround

      Build an own version of magnolia-ldap-tester.jar and include the missing javax.annotation files yourself.

      Development notes

      This dependency needs to be added to Maven in the magnolia-ldap-tester artifact.

       

      <dependency>
          <groupId>javax.annotation</groupId>
          <artifactId>javax.annotation-api</artifactId>
          <version>1.3.2</version>
      </dependency>
      

       

        Acceptance criteria

              Unassigned Unassigned
              zischler Tobias Zischler
              AdminX
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0d
                  0d
                  Logged:
                  Time Spent - 0.25d
                  0.25d