UnitTestBot / UTBotJava

Automated unit test generation and precise code analysis for Java
Apache License 2.0
132 stars 39 forks source link

RuntimeException at `SootMethod.getBody` when running ContestEstimator for fastjson-1.2.50 #1644

Open alisevych opened 1 year ago

alisevych commented 1 year ago

Description

RuntimeException at SootMethod.getBody when running ContestEstimator for fastjson-1.2.50

To Reproduce

  1. Run the 'utbot' project in IntelliJ Idea 2022.2.4
  2. Open utbot-junit-contest/src/main/kotlin/org/utbot/contest/ContestEstimator.kt
  3. Change javaHome property to full local path to JDK 8
  4. In fun main change: projectFilter = listOf("fastjson-1.2.50")
  5. Run fun main - make sure to set JDK 8 as JRE in Edit Configurations

Expected behavior

No exceptions are expected to be thrown.

Actual behavior

There are 20 identical RuntimeExceptions at at soot.asm.AsmMethodSource.getBody in log. No tests are generated.

Visual proofs (screenshots, logs, images)

ContestEstimator output on fastjson 18:23:19.701 | INFO | ------------- project [fastjson-1.2.50] ---- 18:23:19.704 | INFO | ------------- [fastjson-1.2.50] ---->--- [1:com.alibaba.fastjson.asm.ByteVector] --------------------- 18:23:19.780 | DEBUG | ----------------------------------------------------------------------------- 18:23:19.780 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:19.792 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-7" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:26.635 | INFO | Finished (in 6.841 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:26.644 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:26.645 | INFO | continue without compilation 18:23:26.645 | INFO | ------------- [fastjson-1.2.50] ---->--- [2:com.alibaba.fastjson.asm.Type] --------------------- 18:23:26.650 | INFO | ISOLATION: java.lang.InterruptedException 18:23:26.650 | INFO | continue without compilation 18:23:26.651 | INFO | ------------- [fastjson-1.2.50] ---->--- [3:com.alibaba.fastjson.JSONReader] --------------------- 18:23:26.651 | DEBUG | ----------------------------------------------------------------------------- 18:23:26.651 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:26.651 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-10" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:31.755 | INFO | Finished (in 5.103 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:31.755 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:31.755 | INFO | continue without compilation 18:23:31.755 | INFO | ------------- [fastjson-1.2.50] ---->--- [4:com.alibaba.fastjson.parser.DefaultJSONParser] --------------------- 18:23:31.755 | INFO | ISOLATION: java.lang.InterruptedException 18:23:31.755 | INFO | continue without compilation 18:23:31.756 | INFO | ------------- [fastjson-1.2.50] ---->--- [5:com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer] --------------------- 18:23:31.756 | DEBUG | ----------------------------------------------------------------------------- 18:23:31.756 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:31.756 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-17" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:36.287 | INFO | Finished (in 4.530 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:36.287 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:36.287 | INFO | continue without compilation 18:23:36.287 | INFO | ------------- [fastjson-1.2.50] ---->--- [6:com.alibaba.fastjson.parser.deserializer.JavaObjectDeserializer] --------------------- 18:23:36.287 | INFO | ISOLATION: java.lang.InterruptedException 18:23:36.287 | INFO | continue without compilation 18:23:36.287 | INFO | ------------- [fastjson-1.2.50] ---->--- [7:com.alibaba.fastjson.parser.deserializer.ResolveFieldDeserializer] --------------------- 18:23:36.288 | DEBUG | ----------------------------------------------------------------------------- 18:23:36.288 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:36.288 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-25" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:40.977 | INFO | Finished (in 4.688 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:40.977 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:40.977 | INFO | continue without compilation 18:23:40.977 | INFO | ------------- [fastjson-1.2.50] ---->--- [8:com.alibaba.fastjson.parser.ParserConfig] --------------------- 18:23:40.977 | INFO | ISOLATION: java.lang.InterruptedException 18:23:40.977 | INFO | continue without compilation 18:23:40.977 | INFO | ------------- [fastjson-1.2.50] ---->--- [9:com.alibaba.fastjson.serializer.ArraySerializer] --------------------- 18:23:40.977 | DEBUG | ----------------------------------------------------------------------------- 18:23:40.978 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:40.978 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-40" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:45.289 | INFO | Finished (in 4.311 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:45.289 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:45.289 | INFO | continue without compilation 18:23:45.289 | INFO | ------------- [fastjson-1.2.50] ---->--- [10:com.alibaba.fastjson.serializer.ASMSerializerFactory] --------------------- 18:23:45.290 | INFO | ISOLATION: java.lang.InterruptedException 18:23:45.290 | INFO | continue without compilation 18:23:45.290 | INFO | ------------- [fastjson-1.2.50] ---->--- [11:com.alibaba.fastjson.serializer.AwtCodec] --------------------- 18:23:45.290 | DEBUG | ----------------------------------------------------------------------------- 18:23:45.290 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:45.290 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-44" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:49.260 | INFO | Finished (in 3.970 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:49.261 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:49.261 | INFO | continue without compilation 18:23:49.261 | INFO | ------------- [fastjson-1.2.50] ---->--- [12:com.alibaba.fastjson.serializer.BooleanCodec] --------------------- 18:23:49.261 | INFO | ISOLATION: java.lang.InterruptedException 18:23:49.261 | INFO | continue without compilation 18:23:49.261 | INFO | ------------- [fastjson-1.2.50] ---->--- [13:com.alibaba.fastjson.serializer.CharArrayCodec] --------------------- 18:23:49.261 | DEBUG | ----------------------------------------------------------------------------- 18:23:49.261 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:49.261 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-55" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:53.131 | INFO | Finished (in 3.869 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:53.131 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:53.131 | INFO | continue without compilation 18:23:53.131 | INFO | ------------- [fastjson-1.2.50] ---->--- [14:com.alibaba.fastjson.serializer.ClobSeriliazer] --------------------- 18:23:53.131 | INFO | ISOLATION: java.lang.InterruptedException 18:23:53.131 | INFO | continue without compilation 18:23:53.131 | INFO | ------------- [fastjson-1.2.50] ---->--- [15:com.alibaba.fastjson.serializer.JSONSerializer] --------------------- 18:23:53.131 | DEBUG | ----------------------------------------------------------------------------- 18:23:53.131 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:53.131 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-63" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:23:56.576 | INFO | Finished (in 3.444 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:23:56.576 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:23:56.576 | INFO | continue without compilation 18:23:56.576 | INFO | ------------- [fastjson-1.2.50] ---->--- [16:com.alibaba.fastjson.serializer.StringCodec] --------------------- 18:23:56.576 | INFO | ISOLATION: java.lang.InterruptedException 18:23:56.576 | INFO | continue without compilation 18:23:56.576 | INFO | ------------- [fastjson-1.2.50] ---->--- [17:com.alibaba.fastjson.support.hsf.HSFJSONUtils] --------------------- 18:23:56.576 | DEBUG | ----------------------------------------------------------------------------- 18:23:56.576 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:23:56.576 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-68" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:24:00.192 | INFO | Finished (in 3.615 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:24:00.192 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:24:00.192 | INFO | continue without compilation 18:24:00.192 | INFO | ------------- [fastjson-1.2.50] ---->--- [18:com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter] --------------------- 18:24:00.193 | INFO | ISOLATION: java.lang.InterruptedException 18:24:00.193 | INFO | continue without compilation 18:24:00.193 | INFO | ------------- [fastjson-1.2.50] ---->--- [19:com.alibaba.fastjson.util.IOUtils] --------------------- 18:24:00.193 | DEBUG | ----------------------------------------------------------------------------- 18:24:00.193 | INFO | Contest.runGeneration: Time budget: 60000 ms, Generation timeout=51000 ms, classpath=utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\fastjson-1.2.50-SNAPSHOT.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-core-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-jcl-5.3.9.jar;utbot-junit-contest\src\main\resources\projects\fastjson-1.2.50\spring-web-5.3.9.jar, methodNameFilter=null 18:24:00.193 | INFO | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) Exception in thread "Thread-77" java.lang.RuntimeException: Failed to apply jb to at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281) at soot.SootMethod.retrieveActiveBody(SootMethod.java:447) at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: java.lang.RuntimeException: This operation requires resolving level HIERARCHY but io.netty.channel.ChannelFutureListener is at resolving level DANGLING If you are extending Soot, try to add the following call before calling soot.Main.main(..): Scene.v().addBasicClass(io.netty.channel.ChannelFutureListener,HIERARCHY); Otherwise, try whole-program mode (-w). at soot.SootClass.checkLevelIgnoreResolving(SootClass.java:209) at soot.SootClass.checkLevel(SootClass.java:191) at soot.FastHierarchy.canStoreClass(FastHierarchy.java:384) at soot.FastHierarchy.canStoreType(FastHierarchy.java:293) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor_(BytecodeHierarchy.java:230) at soot.jimple.toolkits.typing.fast.BytecodeHierarchy.ancestor(BytecodeHierarchy.java:288) at soot.jimple.toolkits.typing.fast.TypeResolver$CastInsertionUseVisitor.visit(TypeResolver.java:218) at soot.jimple.toolkits.typing.fast.IUseVisitor.visit(IUseVisitor.java:38) at soot.jimple.toolkits.typing.fast.UseChecker.handleInvokeExpr(UseChecker.java:153) at soot.jimple.toolkits.typing.fast.UseChecker.caseInvokeStmt(UseChecker.java:198) at soot.jimple.internal.JInvokeStmt.apply(JInvokeStmt.java:99) at soot.jimple.toolkits.typing.fast.UseChecker.check(UseChecker.java:140) at soot.jimple.toolkits.typing.fast.TypeResolver.insertCasts(TypeResolver.java:363) at soot.jimple.toolkits.typing.fast.TypeResolver.minCasts(TypeResolver.java:386) at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:159) at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:129) at soot.BodyTransformer.transform(BodyTransformer.java:47) at soot.Transform.apply(Transform.java:126) at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:79) at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:112) at soot.Pack.apply(Pack.java:126) at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2279) ... 5 more 18:24:03.515 | INFO | Finished (in 3.322 sec): warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget) :: EXCEPTION :: 18:24:03.515 | INFO | ISOLATION: java.lang.RuntimeException: Failed to apply jb to 18:24:03.515 | INFO | continue without compilation 18:24:03.519 | INFO | : : #classes for generation = 0 #tc generated = 0 #classes without problems = 0 #classes canceled by timeout = 0 ---------------------------------------- #total methods for generation = 0 #methods with at least one testcase generated = 0 #methods with exceptions = 0 #suspicious methods WITH NO testcases AND NO exceptions = 0 ---------------------------------------- #Test classes failed to compile = 0 out of 0: ---------------------------------------- Most common fail reasons in symbolic execution: ---------------------------------------- Total coverage: 0/0 (NaN %) Total fuzzed coverage: 0/0 (NaN %) Total concolic coverage: 0/0 (NaN %) Avg coverage: 0.00 % Process finished with exit code 0 <\details> <\summary> ~~~ **Environment** Windows 10 Pro IntelliJ IDEA 2022.2.3 Ultimate JDK 8
sergeypospelov commented 1 year ago

Looks like this project misses some inner dependencies. I tried to add netty-all dependency manually and the error has changed, but it still remains with other dependency complaint. I think, it's not our fault, but it's interesting how it was working earlier... 🤔

tyuldashev commented 1 year ago

I'm getting exceptions from getBody very often, for instance this one from seata project. @sergeypospelov Are they all the same or each one requires dedicated issue?

18:21:26.931 | INFO  | Started: warmup: 1st optional soot initialization and executor warmup (not to be counted in time budget)
Exception in thread "Thread-44" java.lang.RuntimeException: Failed to apply jb to <io.netty.handler.ssl.OpenSslSessionStats: long ticketKeyFail()>
    at soot.asm.AsmMethodSource.getBody(AsmMethodSource.java:2281)
    at soot.SootMethod.retrieveActiveBody(SootMethod.java:447)
    at soot.PackManager.lambda$retrieveAllBodies$2(PackManager.java:1250)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911)
alisevych commented 1 year ago

Not reproducing with new fast-json, rebuilt with JDK 8.