Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StackOverflowError on org.springframework.samples.petclinic.owner.Owner#toString from PetClinic #2494

Closed
tyuldashev opened this issue Aug 10, 2023 · 2 comments
Assignees
Labels
comp-codegen Issue is related to code generator comp-spring Issue is related to Spring projects support ctg-bug Issue is a bug

Comments

@tyuldashev
Copy link
Collaborator

tyuldashev commented Aug 10, 2023

Description
Exception thrown during test generation for toString method with contains number of ToStringCreator:append methods.

To Reproduce

  1. Install UnitTestBot plugin built from main in IntelliJ IDEA
  2. Open petclinic project -
  3. Generate unit tests with no configuration for org.springframework.samples.petclinic.owner.Owner#toString

Expected behavior
Tests are generated

Actual behavior
One test with error generated, exception in utbot-engine-current.log

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

	}

Screenshots, logs
Exception in the log:

---------------------------------------------------------------------------------------- 
16:33:33.780 | INFO  | AbstractCodeGenerator     | Code generation phase started at 16:33:33.776
16:33:35.687 | WARN  | CgAbstractTestClassConstructor | Code generation error
java.lang.StackOverflowError: null
	at org.utbot.framework.codegen.domain.builtin.UtilMethodBuiltinsKt.getUtJavaUtilsClassId(UtilMethodBuiltins.kt:290) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.builtin.UtilMethodBuiltinsKt.selectUtilClassId(UtilMethodBuiltins.kt:285) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.builtin.UtilClassFileMethodProvider.<init>(UtilMethodBuiltins.kt:265) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.getUtilMethodProvider(CgContext.kt:564) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.access.CgCallableAccessManagerImpl.getUtilMethodProvider(CgCallableAccessManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.ConstructorUtilsKt.isUtil(ConstructorUtils.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.access.CgCallableAccessManagerImpl.findExceptionTypes(CgCallableAccessManager.kt:625) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.access.CgCallableAccessManagerImpl.newMethodCall(CgCallableAccessManager.kt:154) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.access.CgCallableAccessManagerImpl.invoke(CgCallableAccessManager.kt:121) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.invoke(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.mock(MockFrameworkManager.kt:237) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker$createMock$mockObject$1.invoke(MockFrameworkManager.kt:188) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker$createMock$mockObject$1.invoke(MockFrameworkManager.kt:188) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgStatementConstructorImpl.createDeclarationForNewVarAndUpdateVariableScopeOrGetExistingVariable(CgStatementConstructor.kt:179) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgStatementConstructorImpl.newVar(CgStatementConstructor.kt:229) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.newVar(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgStatementConstructor$DefaultImpls.newVar$default(CgStatementConstructor.kt:67) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.createMock(MockFrameworkManager.kt:188) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withMockFramework(CgContext.kt:342) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withMockFramework(CgContext.kt:480) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.withMockFramework(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.createMockFor(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructComposite(CgVariableConstructor.kt:175) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructValueByModel(CgVariableConstructor.kt:112) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable(CgVariableConstructor.kt:104) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgSpringVariableConstructor.getOrCreateVariable(CgSpringVariableConstructor.kt:24) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable$default(CgVariableConstructor.kt:102) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.mockForVariable(MockFrameworkManager.kt:225) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.createMock(MockFrameworkManager.kt:190) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withMockFramework(CgContext.kt:342) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withMockFramework(CgContext.kt:480) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.withMockFramework(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.createMockFor(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructComposite(CgVariableConstructor.kt:175) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructValueByModel(CgVariableConstructor.kt:112) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable(CgVariableConstructor.kt:104) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgSpringVariableConstructor.getOrCreateVariable(CgSpringVariableConstructor.kt:24) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable$default(CgVariableConstructor.kt:102) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.mockForVariable(MockFrameworkManager.kt:225) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.createMock(MockFrameworkManager.kt:190) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withMockFramework(CgContext.kt:342) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withMockFramework(CgContext.kt:480) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.withMockFramework(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.createMockFor(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructComposite(CgVariableConstructor.kt:175) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructValueByModel(CgVariableConstructor.kt:112) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable(CgVariableConstructor.kt:104) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgSpringVariableConstructor.getOrCreateVariable(CgSpringVariableConstructor.kt:24) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable$default(CgVariableConstructor.kt:102) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.mockForVariable(MockFrameworkManager.kt:225) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.createMock(MockFrameworkManager.kt:190) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withMockFramework(CgContext.kt:342) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withMockFramework(CgContext.kt:480) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.withMockFramework(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.createMockFor(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructComposite(CgVariableConstructor.kt:175) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructValueByModel(CgVariableConstructor.kt:112) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable(CgVariableConstructor.kt:104) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgSpringVariableConstructor.getOrCreateVariable(CgSpringVariableConstructor.kt:24) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable$default(CgVariableConstructor.kt:102) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.mockForVariable(MockFrameworkManager.kt:225) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockitoMocker.createMock(MockFrameworkManager.kt:190) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:142) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager$createMockFor$1.invoke(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContextOwner$DefaultImpls.withMockFramework(CgContext.kt:342) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.domain.context.CgContext.withMockFramework(CgContext.kt:480) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.CgVariableConstructorComponent.withMockFramework(MockFrameworkManager.kt) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.services.framework.MockFrameworkManager.createMockFor(MockFrameworkManager.kt:139) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructComposite(CgVariableConstructor.kt:175) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.constructValueByModel(CgVariableConstructor.kt:112) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable(CgVariableConstructor.kt:104) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgSpringVariableConstructor.getOrCreateVariable(CgSpringVariableConstructor.kt:24) ~[utbot-framework-2023.8.5040.jar:?]
	at org.utbot.framework.codegen.tree.CgVariableConstructor.getOrCreateVariable$default(CgVariableConstructor.kt:102) ~[utbot-framework-2023.8.5040.jar:?]
...
@tyuldashev tyuldashev added ctg-bug Issue is a bug comp-codegen Issue is related to code generator comp-spring Issue is related to Spring projects support labels Aug 10, 2023
@alisevych alisevych added this to the Spring Phase 4 milestone Aug 10, 2023
@alisevych
Copy link
Member

@tyuldashev
The issue is not reproducing on the latest main for me.
Can you please verify it also?

@alisevych alisevych removed this from the Spring Phase 4 milestone Sep 19, 2023
@tyuldashev
Copy link
Collaborator Author

Not reproducible with 2023.9.5241

@github-project-automation github-project-automation bot moved this from Todo to Done in UTBot Java Sep 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp-codegen Issue is related to code generator comp-spring Issue is related to Spring projects support ctg-bug Issue is a bug
Projects
Archived in project
Development

No branches or pull requests

3 participants