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

Fixes NoClassDefFoundError crash when calling function from Java #18

Merged
merged 1 commit into from
Feb 24, 2024

Conversation

KiKoS0
Copy link
Collaborator

@KiKoS0 KiKoS0 commented Feb 24, 2024

Spring boot's dependency management plugin is forcing Kotlin 1.6.21 into the classpath because springframework 2.7.18 depends on it: https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/dependency-versions.html#appendix.dependency-versions.coordinates

So this overrides the Kotlin version to 1.9.10, which is the same as inngest-core's Kotlin version.

Solution found in: https://youtrack.jetbrains.com/issue/KT-58021/NoClassDefFoundError-kotlin-enums-EnumEntries-with-language-version-1.9-or-2.0#focus=Comments-27-7955046.0-0

Stack trace:

  Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt] with root cause

java.lang.ClassNotFoundException: kotlin.enums.EnumEntriesKt
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at com.inngest.OpCode.<clinit>(Function.kt:26) ~[main/:na]
	at com.inngest.InngestFunction.call(Function.kt:124) ~[main/:na]
	at com.inngest.CommHandler.callFunction(Comm.kt:85) ~[main/:na]
	at com.inngest.springbootdemo.InngestController.handleRequest(InngestController.java:40) ~[main/:na]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

Spring boot's dependency management plugin is forcing Kotlin
1.6.21 into the classpath because springframework 2.7.18 depends
on it: https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/dependency-versions.html#appendix.dependency-versions.coordinates

So this overrides the Kotlin version to 1.9.10, which is the same
as `inngest-core`'s Kotlin version.

Solution found in: https://youtrack.jetbrains.com/issue/KT-58021/NoClassDefFoundError-kotlin-enums-EnumEntries-with-language-version-1.9-or-2.0

Stack trace:

  Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: kotlin/enums/EnumEntriesKt] with root cause

java.lang.ClassNotFoundException: kotlin.enums.EnumEntriesKt
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
	at com.inngest.OpCode.<clinit>(Function.kt:26) ~[main/:na]
	at com.inngest.InngestFunction.call(Function.kt:124) ~[main/:na]
	at com.inngest.CommHandler.callFunction(Comm.kt:85) ~[main/:na]
	at com.inngest.springbootdemo.InngestController.handleRequest(InngestController.java:40) ~[main/:na]
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
Copy link
Collaborator

@albertchae albertchae left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KiKoS0 KiKoS0 merged commit a3ff6f6 into main Feb 24, 2024
7 checks passed
@KiKoS0 KiKoS0 deleted the fix-enum-crash branch February 24, 2024 05:40
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

Successfully merging this pull request may close these issues.

2 participants