Skip to content

local development does not work (java.lang.NoClassDefFoundError: dagger/internal/Factory) #1397

@adrianimboden

Description

@adrianimboden

Hi all

I found #1235, which is closed. It references the same error and as a response, it mentions to follow the local development manual (https://github.com/bazelbuild/rules_kotlin/blob/master/README.md#with-bzlmod).

I did that, but it still fails with this:

ERROR: .../BUILD:3:11: JdepsMerge //gaCommon/src/main/java/com/getabstract/common/util/mail:mail { jdeps: 1 } failed: Worker process did not return a WorkResponse:

---8<---8<--- Start of log, file at .../bazel-workers/worker-15-JdepsMerge.log ---8<---8<---
Exception in thread "main" java.lang.NoClassDefFoundError: dagger/internal/Factory
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        at io.bazel.kotlin.builder.DaggerJdepsMergerComponent$JdepsMergerComponentImpl.work(DaggerJdepsMergerComponent.java:50)
        at io.bazel.kotlin.builder.cmd.MergeJdeps.main$lambda$0(MergeJdeps.kt:29)
        at io.bazel.worker.Worker$Companion.from(Worker.kt:32)
        at io.bazel.kotlin.builder.cmd.MergeJdeps.main(MergeJdeps.kt:28)
Caused by: java.lang.ClassNotFoundException: dagger.internal.Factory
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 13 more

#1235 only mentioned that it has something to do with release/non-release. I use dozens of bazel_deps via local repository but only this repository does not support it. I think this is a major problem that we need to tackle.

Would develar@cb4d17f be a viable solution (removing the dagger depencency)?

And how do you personally work with rules_kotlin? I assume you need to test your changes somehow. We could at least update the Readme. Best case for me would be, that a simple local_path_override or git_override just works. What is necessary that this becomes possible?

I am willing to put some effort into that. @develar seems to also be interested, reading the original bug report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions