Skip to content

UninitializedPropertyAccessException when transforming in Concrete Execution #848

Closed
@alisevych

Description

@alisevych

Description

Error while transforming: kotlin.UninitializedPropertyAccessException: lateinit property transformer has not been initialized
is thrown when generating tests for Date.getTime()

To Reproduce

  1. IntelliJ IDEA with one of the latest UTBot plugin installed.
  2. Create a project with JDK 8 / 11
  3. Add the following class:
import java.util.Date;

public class DateExample {
    public boolean getTime(Date date) {
        return date.getTime() == 100;
    }
}
  1. Use plugin to generate tests - with Symbolic Execution on
  2. Open the generated test
  3. Check concrete executor logs

Expected behavior

Tests are supposed to be generated.

Actual behavior

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

Visual proofs (screenshots, logs, images)

There are many exceptions like the following - with org/slf4j/LoggerFactory, org/slf4j/LoggingEvent, org/slf4j/ILoggerFactory, etc.

13:06:00.842 | pid - 14828
13:06:00.844 | isJvm8 - true, isJvm9Plus - false, isWindows - true
13:06:00.877 | kryo created
Transforming: org/slf4j/LoggerFactory
Error while transforming: kotlin.UninitializedPropertyAccessException: lateinit property transformer has not been initialized
	at org.utbot.instrumentation.agent.DynamicClassTransformer.getTransformer(DynamicClassTransformer.kt:12)
	at org.utbot.instrumentation.agent.DynamicClassTransformer.transform(DynamicClassTransformer.kt:34)
	at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at mu.KotlinLogging.logger(KotlinLogging.kt:32)
	at org.utbot.rd.UtRdUtilKt.<clinit>(UtRdUtil.kt:14)
	at org.utbot.instrumentation.rd.InstrumentationIOKt.obtainClientIO(InstrumentationIO.kt:17)
	at org.utbot.instrumentation.process.ChildProcessKt.initiate(ChildProcess.kt:268)
	at org.utbot.instrumentation.process.ChildProcessKt.access$initiate(ChildProcess.kt:1)
	at org.utbot.instrumentation.process.ChildProcessKt$main$2.invokeSuspend(ChildProcess.kt:150)
	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.main(ChildProcess.kt:106)
	at org.utbot.instrumentation.process.ChildProcessKt$main$3.invoke(ChildProcess.kt)
	at org.utbot.instrumentation.process.ChildProcessKt$main$3.invoke(ChildProcess.kt)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at org.utbot.instrumentation.process.ChildProcessKt.main(ChildProcess.kt)

Environment

Windows 10 Pro
JDK 8 / 11

Additional context

Same exception is thrown by Concrete executor with the code from #174

Metadata

Metadata

Labels

ctg-bugIssue is a bug

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions