@@ -1269,13 +1269,20 @@ class SpringApplicationContext(
1269
1269
private val beanQualifiedNames : List <String > = emptyList(),
1270
1270
private val shouldUseImplementors : Boolean ,
1271
1271
): 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 >()
1279
1286
1280
1287
override val typeReplacementMode: TypeReplacementMode
1281
1288
get() = if (shouldUseImplementors) KnownImplementor else NoImplementors
@@ -1303,8 +1310,7 @@ class SpringApplicationContext(
1303
1310
override fun speculativelyCannotProduceNullPointerException (
1304
1311
field : SootField ,
1305
1312
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
1308
1314
}
1309
1315
1310
1316
val RefType .isAbstractType
0 commit comments