1
1
package org.utbot.instrumentation.instrumentation.instrumenter
2
2
3
+ import org.objectweb.asm.ClassReader
4
+ import org.objectweb.asm.ClassVisitor
5
+ import org.objectweb.asm.ClassWriter
6
+ import org.objectweb.asm.Opcodes
7
+ import org.objectweb.asm.Type
8
+ import org.objectweb.asm.tree.ClassNode
3
9
import org.utbot.framework.plugin.api.util.UtContext
4
10
import org.utbot.instrumentation.Settings
5
11
import org.utbot.instrumentation.instrumentation.instrumenter.visitors.MethodToProbesVisitor
@@ -9,6 +15,7 @@ import org.utbot.instrumentation.instrumentation.instrumenter.visitors.util.IIns
9
15
import org.utbot.instrumentation.instrumentation.instrumenter.visitors.util.InstanceFieldInitializer
10
16
import org.utbot.instrumentation.instrumentation.instrumenter.visitors.util.InstructionVisitorAdapter
11
17
import org.utbot.instrumentation.instrumentation.instrumenter.visitors.util.StaticFieldInitializer
18
+ import org.utbot.instrumentation.process.HandlerClassesLoader
12
19
import java.io.File
13
20
import java.io.IOException
14
21
import java.io.InputStream
@@ -17,12 +24,6 @@ import java.nio.file.Path
17
24
import java.nio.file.Paths
18
25
import kotlin.reflect.KFunction
19
26
import kotlin.reflect.jvm.javaMethod
20
- import org.objectweb.asm.ClassReader
21
- import org.objectweb.asm.ClassVisitor
22
- import org.objectweb.asm.ClassWriter
23
- import org.objectweb.asm.Opcodes
24
- import org.objectweb.asm.Type
25
- import org.objectweb.asm.tree.ClassNode
26
27
27
28
28
29
// TODO: handle with flags EXPAND_FRAMES, etc.
@@ -155,7 +156,7 @@ private class TunedClassWriter(
155
156
flags : Int
156
157
) : ClassWriter(reader, flags) {
157
158
override fun getClassLoader (): ClassLoader {
158
- return UtContext .currentContext()?.classLoader ? : this :: class .java.classLoader
159
+ return HandlerClassesLoader
159
160
}
160
161
override fun getCommonSuperClass (type1 : String , type2 : String ): String {
161
162
try {
@@ -278,8 +279,9 @@ private class TunedClassWriter(
278
279
*/
279
280
@Throws(IOException ::class )
280
281
private fun typeInfo (type : String ): ClassReader {
281
- val `is `: InputStream = classLoader.getResourceAsStream(" $type .class" )
282
- ? : error(" Can't find resource for class: $type .class" )
282
+ val `is `: InputStream = requireNotNull(classLoader.getResourceAsStream(" $type .class" )) {
283
+ " Can't find resource for class: $type .class"
284
+ }
283
285
return `is `.use { ClassReader (it) }
284
286
}
285
287
}
0 commit comments