Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request/Question: Provide non-jarjar'd builds #1769

Open
cortlepp opened this issue Oct 27, 2023 · 0 comments
Open

Request/Question: Provide non-jarjar'd builds #1769

cortlepp opened this issue Oct 27, 2023 · 0 comments

Comments

@cortlepp
Copy link

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.<init>(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.<init>(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.<init>(ClassReader.java:199)
		at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:180)
		at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:166)
		at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:287)
		at com.google.inject.internal.util.LineNumbers.<init>(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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant