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

utbot-cli: Hit java.lang.NullPointerException: relativePathForClass.parent must not be null while running when running BunchTestGeneratorCommand #2672

Open
zerowsw opened this issue Nov 3, 2023 · 0 comments
Labels
comp-cli Issue related to CLI ctg-bug Issue is a bug

Comments

@zerowsw
Copy link

zerowsw commented Nov 3, 2023

Description

While using utbot-cli to generate unit tests for open source projects, we hit the issue like:
java.lang.NullPointerException: relativePathForClass.parent must not be null while running. In https://github.com/UnitTestBot/UTBotJava/blob/main/utbot-cli/src/main/kotlin/org/utbot/cli/ClassLoaderUtils.kt#L18, it tries to find parent directory of relativePathForClass and failed. This happens when some compiled maven projects have .class files right under /target/classes directory without any parent directories.

To Reproduce

Steps to reproduce the behavior:

  1. clone https://github.com/fiji/IO to local
  2. use java 8 to run mvn dependency:build-classpath --define mdep.outputFile=/tmp/classpath.txt to store dependency classpath into a file.
  3. use java 8 to run mvn compile and compile the project
  4. compile UTBotJava and get utbot-cli.jar
  5. Run bunchGenerate command through code like
    java --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.icu.util=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED -jar /<Relative Path to utbot-cli>/utbot-cli.jar bunchGenerate --test-framework junit5 --classpath /<Relative path to IO project >/src/target/classes --classpathFile /tmp/classpath.txt --output <Any output path>

Expected behavior

Tests are supposed to be generated.

Actual behavior

hit NullPointerException

Visual proofs (screenshots, logs, images)



java.lang.NullPointerException: relativePathForClass.parent must not be null
--
11621 | at org.utbot.cli.ClassLoaderUtilsKt.loadClassesFromPath(ClassLoaderUtils.kt:18)
11622 | at org.utbot.cli.BunchTestGeneratorCommand.run(BunchTestGeneratorCommand.kt:68)
11623 | at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:204)
11624 | at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:213)
11625 | at com.github.ajalt.clikt.parsers.Parser.parse(Parser.kt:17)
11626 | at com.github.ajalt.clikt.core.CliktCommand.parse(CliktCommand.kt:396)
11627 | at com.github.ajalt.clikt.core.CliktCommand.parse$default(CliktCommand.kt:393)
11628 | at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:411)
11629 | at com.github.ajalt.clikt.core.CliktCommand.main(CliktCommand.kt:436)
11630 | at org.utbot.cli.ApplicationKt.main(Application.kt:31)


Environment

  1. https://github.com/fiji/IO was compiled with java8
  2. java 17 was used to run utbot-cli
  3. Tested on macOS, M1 (AArch64 architecture)

Additional context

Add any other context about the problem here.

@zerowsw zerowsw added the ctg-bug Issue is a bug label Nov 3, 2023
@tyuldashev tyuldashev added the comp-cli Issue related to CLI label Nov 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-cli Issue related to CLI ctg-bug Issue is a bug
Projects
Status: Todo
Development

No branches or pull requests

2 participants