Skip to content

Test generation fails for test with Queue as method parameter #524

Closed
@tochilinak

Description

@tochilinak

Description

Test generation fails for test with Queue as method parameter.

To Reproduce

Steps to reproduce the behavior:

  1. Open project in IntelliJ Idea with one of the latest versions of UTBotJava plugin installed
  2. Add a class
  3. Add a class method:
    public boolean q(Queue<Integer> a) { return a.add(1); }
  4. Generate test for this method

Expected behavior

Tests are supposed to be generated.

Actual behavior

An error occurs: ClassNotFoundException.

Visual proofs (screenshots, logs, images)

org.utbot.instrumentation.util.ChildProcessError: Error in the child process |> java.lang.ClassNotFoundException: java.lang.invoke.VarHandleObjects$FieldInstanceReadWrite
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at org.utbot.instrumentation.process.HandlerClassesLoader.loadClass(ChildProcess.kt:38)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at org.utbot.framework.concrete.MockValueConstructor.kClass(MockValueConstructor.kt:470)
	at org.utbot.framework.concrete.MockValueConstructor.javaClass(MockValueConstructor.kt:455)
	at org.utbot.framework.concrete.MockValueConstructor.constructObject(MockValueConstructor.kt:158)
	at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:127)
	at org.utbot.framework.concrete.MockValueConstructor.constructStatics(MockValueConstructor.kt:110)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:145)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:106)
	at org.utbot.instrumentation.process.ChildProcessKt.loop(ChildProcess.kt:133)
	at org.utbot.instrumentation.process.ChildProcessKt.main(ChildProcess.kt:77)
	at org.utbot.instrumentation.process.ChildProcessKt.main(ChildProcess.kt)

	at org.utbot.instrumentation.ConcreteExecutor.executeAsync(ConcreteExecutor.kt:415)
	at org.utbot.instrumentation.ConcreteExecutor$executeAsync$1.invokeSuspend(ConcreteExecutor.kt)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at org.utbot.common.ConcurrencyKt.runBlockingWithCancellationPredicate(Concurrency.kt:38)
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$4.invoke(TestCaseGenerator.kt:158)
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$4.invoke(TestCaseGenerator.kt:51)
	at org.utbot.common.ConcurrencyKt.runIgnoringCancellationException(Concurrency.kt:47)
	at org.utbot.framework.plugin.api.TestCaseGenerator.generate(TestCaseGenerator.kt:157)
	at org.utbot.framework.plugin.api.TestCaseGenerator.generate$default(TestCaseGenerator.kt:144)
	at org.utbot.intellij.plugin.generator.UtTestsDialogProcessor$createTests$2$1.run(UtTestsDialogProcessor.kt:190)
	at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:935)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsync$5(CoreProgressManager.java:442)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:235)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:170)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:157)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:235)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: java.lang.invoke.VarHandleObjects$FieldInstanceReadWrite
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at org.utbot.instrumentation.process.HandlerClassesLoader.loadClass(ChildProcess.kt:38)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at org.utbot.framework.concrete.MockValueConstructor.kClass(MockValueConstructor.kt:470)
	at org.utbot.framework.concrete.MockValueConstructor.javaClass(MockValueConstructor.kt:455)
	at org.utbot.framework.concrete.MockValueConstructor.constructObject(MockValueConstructor.kt:158)
	at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:127)
	at org.utbot.framework.concrete.MockValueConstructor.constructStatics(MockValueConstructor.kt:110)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:145)
	at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:106)
	at org.utbot.instrumentation.process.ChildProcessKt.loop(ChildProcess.kt:133)
	at org.utbot.instrumentation.process.ChildProcessKt.main(ChildProcess.kt:77)
	at org.utbot.instrumentation.process.ChildProcessKt.main(ChildProcess.kt)

Environment

Ubuntu, Java 8, guest IDEA 2020.2 community

Additional context

Same code fails on https://www.utbot.org/utbot/.

Error:

Status Code: TEST_GENERATION_FAILED

TEST GENERATION: TEST_GENERATION_FAILED
Timeout

TEST RUN: ERROR OCCURRED
[object Object]: no details

Metadata

Metadata

Assignees

Labels

ctg-bugIssue is a bug

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions