Skip to content

ClassNotFoundException TestConfiguration inside Test class for a Spring unit tests generation #2292

Closed
@alisevych

Description

@alisevych

Description

ClassNotFoundException for TestConfiguration defined inside CrashControllerIntegrationTests in instrumented process.

To Reproduce

  1. Install UnitTestBot plugin built from main in IntelliJ IDEA
  2. Open spring-petclinic project
  3. Set JDK 17
  4. Generate tests for Owner entity-class:
    select TestConfiguration, Unit tests and leave defaults for all other settings.

Expected behavior

Inner class TestConfiguration can be used for test generation.
No exception is expected.

Actual behavior

Error test is generated.
CLassNotFound exception is thrown in utbot-engine-current.log

Screenshots, logs

	///region Test suites for executable org.springframework.samples.petclinic.owner.Owner.toString

	///region Errors report for toString

	public void testToString_errors() {
		// Couldn't generate some tests. List of errors:
		//
		// 1 occurrences of:
		// <Throwable with empty message>

	}
	///endregion

	///endregion
17:10:46.739 | INFO  | EngineProcessMain         | -----------------------------------------------------------------------
17:10:46.743 | INFO  | EngineProcessMain         | -------------------NEW ENGINE PROCESS STARTED--------------------------
17:10:46.744 | INFO  | EngineProcessMain         | -----------------------------------------------------------------------
17:10:47.364 | INFO  | SpringAnalyzerProcess     | Spring Analyzer process started with PID = 88618
17:10:48.071 | INFO  | SpringAnalyzerProcess     | RdCategory: SpringAnalyzerProcessMain | ----------------------------------------------------------------------- 
17:10:48.072 | INFO  | SpringAnalyzerProcess     | RdCategory: SpringAnalyzerProcessMain | ------------------NEW SPRING ANALYZER PROCESS STARTED------------------ 
17:10:48.072 | INFO  | SpringAnalyzerProcess     | RdCategory: SpringAnalyzerProcessMain | ----------------------------------------------------------------------- 
17:10:48.086 | INFO  | SpringAnalyzerProcess     | RdCategory: SourceFinder              | Using java Spring configuration 
17:10:48.116 | ERROR | EngineProcessMain         | Spring Analyzer crashed, resorting to using empty bean list
com.jetbrains.rd.util.reactive.RdFault: org.springframework.samples.petclinic.system.CrashControllerIntegrationTests.TestConfiguration, reason: java.lang.ClassNotFoundException: org.springframework.samples.petclinic.system.CrashControllerIntegrationTests.TestConfiguration
	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:520)
	at org.utbot.spring.utils.SourceFinder.findSources(SourceFinder.kt:30)
	at org.utbot.spring.analyzer.SpringApplicationAnalyzer.getBeanDefinitions(SpringApplicationAnalyzer.kt:13)
	at org.utbot.spring.process.SpringAnalyzerProcessMainKt$setup$1.invoke(SpringAnalyzerProcessMain.kt:51)
	at org.utbot.spring.process.SpringAnalyzerProcessMainKt$setup$1.invoke(SpringAnalyzerProcessMain.kt:43)
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1$2$1.invoke(ClientProcessUtil.kt:115)
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:88)
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1.invoke(ClientProcessUtil.kt:114)
	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:362)
	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:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

	at com.jetbrains.rd.framework.RdTaskResult$Companion.read(TaskInterfaces.kt:30) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.CallSiteWiredRdTask.onWireReceived(RdTask.kt:106) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1.queue$execute(RdTask.kt:280) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1.access$queue$execute(RdTask.kt:269) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall$createResponseScheduler$1$queue$1.invokeSuspend(RdTask.kt:289) ~[rd-framework-2023.1.2.jar:?]
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.8.10.jar:1.8.10-release-430(1.8.10)]
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:284) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at org.utbot.rd.UtRdUtilKt.startBlocking(UtRdUtil.kt:31) ~[utbot-rd-main-2023.6.4608.jar:?]
	at org.utbot.spring.process.SpringAnalyzerProcess.getBeanDefinitions(SpringAnalyzerProcess.kt:97) ~[utbot-spring-analyzer-main-2023.6.4608.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$2.invoke(EngineProcessMain.kt:85) ~[utbot-framework-main-2023.6.4608.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$2.invoke(EngineProcessMain.kt:81) ~[utbot-framework-main-2023.6.4608.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1$2$1.invoke(ClientProcessUtil.kt:115) ~[utbot-rd-main-2023.6.4608.jar:?]
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:88) ~[utbot-rd-main-2023.6.4608.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1.invoke(ClientProcessUtil.kt:114) ~[utbot-rd-main-2023.6.4608.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.IRdEndpoint$set$1.invoke(TaskInterfaces.kt:182) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.RdCall.onWireReceived(RdTask.kt:362) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:57) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.impl.ProtocolContexts.readMessageContextAndInvoke(ProtocolContexts.kt:148) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:56) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.framework.MessageBroker$invoke$2.invoke(MessageBroker.kt:54) ~[rd-framework-2023.1.2.jar:?]
	at com.jetbrains.rd.util.threading.SingleThreadSchedulerBase.queue$lambda-3(SingleThreadScheduler.kt:41) ~[rd-core-2023.1.2.jar:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Environment

OS - macOS Ventura 13.2.1 (22D68)
IntelliJ IDEA version - 2023.1.2 Community edition
Project - spring-petclinic
JDK - 17

Metadata

Metadata

Assignees

Labels

comp-instrumented-processIssue is related to Instrumented processcomp-springIssue is related to Spring projects supportctg-bugIssue is a bug

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions