Skip to content

NoSuchElementException: Key 4 is missing in the map during generation for Spring @RestController #2488

Open
@tyuldashev

Description

@tyuldashev

Description
Codegen fails during test generation for Spring project.

To Reproduce

  1. Install UnitTestBot plugin built from main in IntelliJ IDEA
  2. Open attached project - SpringPhotoTutorial.zip
  3. Generate tests for com.tyuldashev.photo.photozclone.DownloadController#download with settings: "No configuration", "Mock everything outside the class".

Expected behavior
Tests are generated.

Actual behavior
No tests are generated, error in the utbot-engine-current.log.

Screenshots, logs

17:39:31.862 | INFO  | AnalyticsConfigureUtil    | PathSelectorType: INHERITORS_SELECTOR
17:39:53.078 | INFO  | TestCaseGenerator         | Resuming method com.tyuldashev.photo.photozclone.DownloadController.download
17:39:56.878 | ERROR | TestCaseGenerator         | Error in flow
java.util.NoSuchElementException: Key 4 is missing in the map.
	at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:24) ~[kotlin-stdlib-1.8.10.jar:1.8.10-release-430(1.8.10)]
	at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:349) ~[kotlin-stdlib-1.8.10.jar:1.8.10-release-430(1.8.10)]
	at org.utbot.engine.Resolver.resolveMock(Resolver.kt:352) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.resolveObject(Resolver.kt:483) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.resolveReferenceValue(Resolver.kt:455) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.resolveModel(Resolver.kt:426) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.concreteException(Resolver.kt:422) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.concreteException(Resolver.kt:416) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.resolve(Resolver.kt:397) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.Resolver.resolveResult(Resolver.kt:385) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine.consumeTerminalState(UtBotSymbolicEngine.kt:601) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine.access$consumeTerminalState(UtBotSymbolicEngine.kt:110) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invokeSuspend(UtBotSymbolicEngine.kt:389) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invoke(UtBotSymbolicEngine.kt) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.engine.UtBotSymbolicEngine$traverseImpl$1.invoke(UtBotSymbolicEngine.kt) ~[utbot-framework-2023.8.4997.jar:?]
	at kotlinx.coroutines.flow.SafeFlow.collectSafely(Builders.kt:61) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.AbstractFlow.collect(Flow.kt:230) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.FlowKt__EmittersKt$onStart$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:120) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.FlowKt__EmittersKt$onCompletion$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:114) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.FlowKt__ErrorsKt.catchImpl(Errors.kt:156) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.FlowKt.catchImpl(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:113) ~[kotlinx-coroutines-core-jvm-1.6.3.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$2$3$1$1.invokeSuspend(TestCaseGenerator.kt:222) ~[utbot-framework-2023.8.4997.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.common.ConcurrencyKt.runBlockingWithCancellationPredicate(Concurrency.kt:38) ~[utbot-core-2023.8.4997.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$2$3.invoke(TestCaseGenerator.kt:196) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator$generate$2$3.invoke(TestCaseGenerator.kt:195) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.common.ConcurrencyKt.runIgnoringCancellationException(Concurrency.kt:47) ~[utbot-core-2023.8.4997.jar:?]
	at org.utbot.framework.plugin.api.TestCaseGenerator.generate(TestCaseGenerator.kt:195) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$4.invoke(EngineProcessMain.kt:135) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.framework.process.EngineProcessMainKt$setup$4.invoke(EngineProcessMain.kt:120) ~[utbot-framework-2023.8.4997.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1$2$1.invoke(ClientProcessUtil.kt:115) ~[utbot-rd-2023.8.4997.jar:?]
	at org.utbot.rd.IdleWatchdog.wrapActive(ClientProcessUtil.kt:88) ~[utbot-rd-2023.8.4997.jar:?]
	at org.utbot.rd.IdleWatchdog$measureTimeForActiveCall$1.invoke(ClientProcessUtil.kt:114) ~[utbot-rd-2023.8.4997.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) [?:?]

Metadata

Metadata

Assignees

Labels

comp-springIssue is related to Spring projects supportcomp-symbolic-engineIssue is related to the symbolic execution enginectg-bugIssue is a bug

Type

No type

Projects

Status

Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions