UnitTestBot / UTBotJava

Automated unit test generation and precise code analysis for Java
Apache License 2.0
134 stars 38 forks source link

Concrete execution exceptions for Collection<Collection<Double>> #1020

Open alisevych opened 1 year ago

alisevych commented 1 year ago

Description

NoSuchElementException and NullPointerException are thrown from concrete executions by symbolic engine of a method with Collection<Collection> as input.

To Reproduce

  1. Install one of the latest plugin build from main on IntelliJ Idea 2022.1.4
  2. Symbolic execution is on
  3. Add the following method to a Java class:
public static boolean isDiagonal(Collection<Collection<Double>> matrix) {
        int cols = matrix.size();
        if (cols <= 1) {
            return false;
        }
        int i = 0;
        for (Collection<Double> col : matrix) {
            if (col.size() != cols) {
                return false;
            }
            int j = 0;
            for (Double value : col) {
                if (i == j && value == 0.0) return false;
                if (i != j && value != 0.0) return false;
                j++;
            }
            i++;
        }
        return true;
    }
  1. Generate tests with UTBot symbolic execution

Expected behavior

Tests are supposed to be generated.

Actual behavior

An error test is generated with information about errors in the concrete executor.

Exceptions in concrete execution logs ```java 18:18:25.437 ERROR| java.util.NoSuchElementException at java.base/java.util.Vector$Itr.next(Vector.java:1280) at java.base/java.util.AbstractList.hashCode(AbstractList.java:566) at java.base/java.util.Vector.hashCode(Vector.java:1106) at java.base/java.util.HashMap.hash(HashMap.java:340) at java.base/java.util.HashMap.put(HashMap.java:608) at java.base/java.util.HashSet.add(HashSet.java:220) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.utbot.common.KClassUtilKt.invokeCatching(KClassUtil.kt:10) at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:478) at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:477) at org.utbot.instrumentation.process.SecurityKt$runSandbox$1$1.invoke(Security.kt:38) at org.utbot.instrumentation.process.SecurityKt$sandbox$1.invoke(Security.kt:61) at org.utbot.instrumentation.process.SecurityKt$sandbox$2.invoke(Security.kt:77) at org.utbot.instrumentation.process.SecurityKt$sandbox$3.invoke(Security.kt:82) at org.utbot.instrumentation.process.SecurityKt$sandbox$4.run(Security.kt:88) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:88) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:82) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:77) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:61) at org.utbot.instrumentation.process.SecurityKt.runSandbox(Security.kt:38) at org.utbot.framework.concrete.MockValueConstructor.call(MockValueConstructor.kt:477) at org.utbot.framework.concrete.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:420) at org.utbot.framework.concrete.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:370) at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:132) at org.utbot.framework.concrete.MockValueConstructor.constructMethodParameters(MockValueConstructor.kt:107) at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:156) at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:118) at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:211) at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:208) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1$1.invoke(ChildProcess.kt:190) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$1.invokeSuspend(ChildProcess.kt:174) 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:284) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) 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.instrumentation.process.ChildProcessKt.measureExecutionForTermination(ChildProcess.kt:171) at org.utbot.instrumentation.process.ChildProcessKt.access$measureExecutionForTermination(ChildProcess.kt:1) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1.invokeSuspend(ChildProcess.kt:188) 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:284) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) 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.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2.invoke(ChildProcess.kt:187) at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360) at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41) 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.lang.Thread.run(Thread.java:829) WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.util.Vector.elementData WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.util.Vector.elementCount WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.util.Vector.capacityIncrement WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.util.AbstractList.modCount WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.util.IdentityHashMap$Values.this$0 WARNING: Illegal reflective access by org.utbot.framework.concrete.UtModelConstructor (file:/C:/Users/lWX1182794/AppData/Roaming/JetBrains/IntelliJIdea2022.1/plugins/utbot-intellij/lib/utbot-framework-2022.9.368.jar) to field java.lang.ProcessEnvironment$CheckedValues.c 18:18:25.515 ERROR| java.lang.NullPointerException at java.base/java.util.Vector.elementData(Vector.java:762) at java.base/java.util.Vector$Itr.next(Vector.java:1282) at java.base/java.util.AbstractList.hashCode(AbstractList.java:566) at java.base/java.util.Vector.hashCode(Vector.java:1106) at java.base/java.util.HashMap.hash(HashMap.java:340) at java.base/java.util.HashMap.put(HashMap.java:608) at java.base/java.util.HashSet.add(HashSet.java:220) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.utbot.common.KClassUtilKt.invokeCatching(KClassUtil.kt:10) at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:478) at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:477) at org.utbot.instrumentation.process.SecurityKt$runSandbox$1$1.invoke(Security.kt:38) at org.utbot.instrumentation.process.SecurityKt$sandbox$1.invoke(Security.kt:61) at org.utbot.instrumentation.process.SecurityKt$sandbox$2.invoke(Security.kt:77) at org.utbot.instrumentation.process.SecurityKt$sandbox$3.invoke(Security.kt:82) at org.utbot.instrumentation.process.SecurityKt$sandbox$4.run(Security.kt:88) at java.base/java.security.AccessController.doPrivileged(Native Method) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:88) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:82) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:77) at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:61) at org.utbot.instrumentation.process.SecurityKt.runSandbox(Security.kt:38) at org.utbot.framework.concrete.MockValueConstructor.call(MockValueConstructor.kt:477) at org.utbot.framework.concrete.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:420) at org.utbot.framework.concrete.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:370) at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:132) at org.utbot.framework.concrete.MockValueConstructor.constructMethodParameters(MockValueConstructor.kt:107) at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:156) at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:118) at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:211) at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:208) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1$1.invoke(ChildProcess.kt:190) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$1.invokeSuspend(ChildProcess.kt:174) 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:284) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) 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.instrumentation.process.ChildProcessKt.measureExecutionForTermination(ChildProcess.kt:171) at org.utbot.instrumentation.process.ChildProcessKt.access$measureExecutionForTermination(ChildProcess.kt:1) at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1.invokeSuspend(ChildProcess.kt:188) 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:284) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) 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.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2.invoke(ChildProcess.kt:187) at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360) at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41) 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.lang.Thread.run(Thread.java:829) ```

Visual proofs (screenshots, logs, images)

///region Errors report for isDiagonal

    public void testIsDiagonal_errors() {
        // Couldn't generate some tests. List of errors:
        // 
        // 4 occurrences of:
        // Concrete execution failed

    }
    ///endregion

Environment

Windows 10 Pro JDK 11 Gradle

Additional context

In Fuzzing only mode correct tests are generated without concrete executions issues.

Found on testing #988

alisevych commented 1 year ago

Update @sergeypospelov Please pay your attention that:

Concrete execution logs have different exceptions and stacktrace:

16:11:54.602 ERROR| java.lang.NullPointerException
    at java.base/sun.security.jca.ProviderList$3.size(ProviderList.java:153)
    at java.base/java.util.AbstractList$Itr.hasNext(AbstractList.java:364)
    at java.base/java.util.AbstractList.hashCode(AbstractList.java:566)
    at java.base/java.util.HashMap.hash(HashMap.java:340)
    at java.base/java.util.HashMap.put(HashMap.java:608)
    at java.base/java.util.HashSet.add(HashSet.java:220)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.utbot.common.KClassUtilKt.invokeCatching(KClassUtil.kt:10)
    at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:478)
    at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:477)
    at org.utbot.instrumentation.process.SecurityKt$runSandbox$1$1.invoke(Security.kt:38)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$1.invoke(Security.kt:61)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$2.invoke(Security.kt:77)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$3.invoke(Security.kt:82)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$4.run(Security.kt:88)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:88)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:82)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:77)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:61)
    at org.utbot.instrumentation.process.SecurityKt.runSandbox(Security.kt:38)
    at org.utbot.framework.concrete.MockValueConstructor.call(MockValueConstructor.kt:477)
    at org.utbot.framework.concrete.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:420)
    at org.utbot.framework.concrete.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:370)
    at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:132)
    at org.utbot.framework.concrete.MockValueConstructor.value(MockValueConstructor.kt:466)
    at org.utbot.framework.concrete.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:417)
    at org.utbot.framework.concrete.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:370)
    at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:132)
    at org.utbot.framework.concrete.MockValueConstructor.constructMethodParameters(MockValueConstructor.kt:107)
    at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:156)
    at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:118)
    at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:211)
    at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:208)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1$1.invoke(ChildProcess.kt:190)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$1.invokeSuspend(ChildProcess.kt:174)
    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:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    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.instrumentation.process.ChildProcessKt.measureExecutionForTermination(ChildProcess.kt:171)
    at org.utbot.instrumentation.process.ChildProcessKt.access$measureExecutionForTermination(ChildProcess.kt:1)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1.invokeSuspend(ChildProcess.kt:188)
    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:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    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.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2.invoke(ChildProcess.kt:187)
    at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
    at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
    at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56)
    at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54)
    at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41)
    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.lang.Thread.run(Thread.java:829)

16:11:54.623 ERROR| java.lang.NullPointerException
    at kotlin.collections.ArraysKt___ArraysJvmKt$asList$6.getSize(_ArraysJvm.kt:211)
    at kotlin.collections.AbstractCollection.size(AbstractCollection.kt:14)
    at kotlin.collections.AbstractList$IteratorImpl.hasNext(AbstractList.kt:75)
    at kotlin.collections.AbstractList$Companion.orderedHashCode$kotlin_stdlib(AbstractList.kt:138)
    at kotlin.collections.AbstractList.hashCode(AbstractList.kt:69)
    at java.base/java.util.HashMap.hash(HashMap.java:340)
    at java.base/java.util.HashMap.put(HashMap.java:608)
    at java.base/java.util.HashSet.add(HashSet.java:220)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.utbot.common.KClassUtilKt.invokeCatching(KClassUtil.kt:10)
    at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:478)
    at org.utbot.framework.concrete.MockValueConstructor$call$1.invoke(MockValueConstructor.kt:477)
    at org.utbot.instrumentation.process.SecurityKt$runSandbox$1$1.invoke(Security.kt:38)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$1.invoke(Security.kt:61)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$2.invoke(Security.kt:77)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$3.invoke(Security.kt:82)
    at org.utbot.instrumentation.process.SecurityKt$sandbox$4.run(Security.kt:88)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:88)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:82)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:77)
    at org.utbot.instrumentation.process.SecurityKt.sandbox(Security.kt:61)
    at org.utbot.instrumentation.process.SecurityKt.runSandbox(Security.kt:38)
    at org.utbot.framework.concrete.MockValueConstructor.call(MockValueConstructor.kt:477)
    at org.utbot.framework.concrete.MockValueConstructor.updateWithExecutableCallModel(MockValueConstructor.kt:420)
    at org.utbot.framework.concrete.MockValueConstructor.constructFromAssembleModel(MockValueConstructor.kt:370)
    at org.utbot.framework.concrete.MockValueConstructor.construct(MockValueConstructor.kt:132)
    at org.utbot.framework.concrete.MockValueConstructor.constructMethodParameters(MockValueConstructor.kt:107)
    at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:156)
    at org.utbot.framework.concrete.UtExecutionInstrumentation.invoke(UtExecutionInstrumentation.kt:118)
    at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:211)
    at org.utbot.instrumentation.process.ChildProcessKt$setup$2.invoke(ChildProcess.kt:208)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1$1.invoke(ChildProcess.kt:190)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$1.invokeSuspend(ChildProcess.kt:174)
    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:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    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.instrumentation.process.ChildProcessKt.measureExecutionForTermination(ChildProcess.kt:171)
    at org.utbot.instrumentation.process.ChildProcessKt.access$measureExecutionForTermination(ChildProcess.kt:1)
    at org.utbot.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2$1.invokeSuspend(ChildProcess.kt:188)
    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:284)
    at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
    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.instrumentation.process.ChildProcessKt$measureExecutionForTermination$2.invoke(ChildProcess.kt:187)
    at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
    at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182)
    at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:360)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56)
    at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56)
    at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54)
    at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41)
    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.lang.Thread.run(Thread.java:829)