Skip to content

Commit 537eda1

Browse files
committed
Correct lazy initialization
1 parent ebf9bd0 commit 537eda1

File tree

1 file changed

+15
-9
lines changed
  • utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api

1 file changed

+15
-9
lines changed

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,13 +1269,20 @@ class SpringApplicationContext(
12691269
private val beanQualifiedNames: List<String> = emptyList(),
12701270
private val shouldUseImplementors: Boolean,
12711271
): ApplicationContext(mockInstalled, staticsMockingIsConfigured) {
1272-
1273-
private val springInjectedClasses: List<ClassId> by lazy {
1274-
beanQualifiedNames
1275-
.map { fqn -> utContext.classLoader.loadClass(fqn) }
1276-
.filterNot { it.isAbstract || it.isInterface || it.isLocalClass || it.isMemberClass && !it.isStatic }
1277-
.map { it.id }
1278-
}
1272+
1273+
private val springInjectedClasses: Set<ClassId>
1274+
get() {
1275+
if (springInjectedClassesStorage.isEmpty()) {
1276+
springInjectedClassesStorage = beanQualifiedNames
1277+
.map { fqn -> utContext.classLoader.loadClass(fqn) }
1278+
.filterNot { it.isAbstract || it.isInterface || it.isLocalClass || it.isMemberClass && !it.isStatic }
1279+
.mapTo(mutableSetOf()) { it.id }
1280+
}
1281+
1282+
return springInjectedClassesStorage
1283+
}
1284+
1285+
private var springInjectedClassesStorage = mutableSetOf<ClassId>()
12791286

12801287
override val typeReplacementMode: TypeReplacementMode
12811288
get() = if (shouldUseImplementors) KnownImplementor else NoImplementors
@@ -1303,8 +1310,7 @@ class SpringApplicationContext(
13031310
override fun speculativelyCannotProduceNullPointerException(
13041311
field: SootField,
13051312
classUnderTest: ClassId,
1306-
): Boolean =
1307-
field.fieldId in classUnderTest.allDeclaredFieldIds && field.declaringClass.id !in springInjectedClasses
1313+
): Boolean = field.fieldId in classUnderTest.allDeclaredFieldIds && field.declaringClass.id !in springInjectedClasses
13081314
}
13091315

13101316
val RefType.isAbstractType

0 commit comments

Comments
 (0)