Request/Question: Provide non-jarjar'd builds
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 1.7k
- Avg merge
- 11m
- Merged PRs (30d)
- 2
Description
Hi,
I am currently trying to update an application using guice 5.1.0 to Java 21. For operational reasons we currently cannot update to 6.0.0/7.0.0 (but will do so soon). In the meantime we would like to stay with guice 5.1.0 but still do the java update.
When trying to start my application, I got this error:
```
Suppressed: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 65
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2086)
at com.google.common.cache.LocalCache.get(LocalCache.java:4012)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4035)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5013)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5020)
at com.google.inject.internal.FailableCache.get(FailableCache.java:54)
at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:152)
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:605)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:943)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:300)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:223)
at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:949)
at com.google.inject.internal.FactoryProxy.notify(FactoryProxy.java:48)
at com.google.inject.internal.ProcessedBindingData.runCreationListeners(ProcessedBindingData.java:60)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:137)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
at com.google.inject.Guice.createInjector(Guice.java:87)
at com.google.inject.Guice.createInjector(Guice.java:78)
at com.intershop.beehive.objectgraph.guice.internal.GuiceObjectGraphFactory.createObjectGraph(GuiceObjectGraphFactory.java:94)
at com.intershop.beehive.objectgraph.guice.internal.TestObjectGraphFactory.createObjectGraph(TestObjectGraphFactory.java:117)
at com.intershop.platform.objectgraph.internal.ObjectGraphEngineImpl.loadObjectGraph(ObjectGraphEngineImpl.java:87)
at com.intershop.beehive.core.internal.environment.ServerEnvironmentImpl.createGlobalObjectGraph(ServerEnvironmentImpl.java:885)
at com.intershop.beehive.core.internal.environment.ServerEnvironmentImpl.onInitHook(ServerEnvironmentImpl.java:836)
at com.intershop.beehive.core.internal.environment.ServerEnvironmentImpl.startup(ServerEnvironmentImpl.java:313)
... 3 common frames omitted
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 65
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2086)
at com.google.common.cache.LocalCache.get(LocalCache.java:4012)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4035)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5013)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5020)
at com.google.inject.internal.FailableCache.get(FailableCache.java:54)
at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:69)
at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:75)
at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34)
at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3571)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2313)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2190)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2080)
... 28 common frames omitted
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 65
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2086)
at com.google.common.cache.LocalCache.get(LocalCache.java:4012)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4035)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5013)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5020)
at com.google.inject.internal.util.StackTraceElements.forMember(StackTraceElements.java:67)
at com.google.inject.internal.SourceFormatter.formatMember(SourceFormatter.java:91)
at com.google.inject.internal.SourceFormatter.format(SourceFormatter.java:53)
at com.google.inject.internal.MissingImplementationErrorHints.getSuggestions(MissingImplementationErrorHints.java:82)
at com.google.inject.internal.MissingImplementationError.(MissingImplementationError.java:21)
at com.google.inject.internal.Errors.missingImplementationWithHint(Errors.java:165)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:103)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:715)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:941)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:300)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:223)
at com.google.inject.internal.SingleFieldInjector.(SingleFieldInjector.java:39)
at com.google.inject.internal.MembersInjectorStore.getInjectors(MembersInjectorStore.java:131)
at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:97)
at com.google.inject.internal.MembersInjectorStore.access$000(MembersInjectorStore.java:40)
at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:49)
at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:45)
at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3571)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2313)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2190)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2080)
... 43 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 65
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:199)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:180)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:166)
at com.google.inject.internal.asm.$ClassReader.(ClassReader.java:287)
at com.google.inject.internal.util.LineNumbers.(LineNumbers.java:69)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:48)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:44)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3571)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2313)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2190)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2080)
... 70 common frames omitted
```
After trying for some time to get guice to take my provided asm version instead of the original one (and failing at it), I discovered what you do with jarjar.
I have now locally built guice 5.1.0 with jarjar disabled and it seems to work now with my application with Java 21 (so far).
Now my question: do you (or anyone else you are aware of) provide builds of guice with jarjar disabled?
And a request on the side: PLEASE provide some more documentation about what you do with JarJar, I had to decompile your code and read your build scripts, to by chance discover your usage of JarJar (and what that does).
Contributor guide
Assessment
This issue has not been assessed yet.