What has been updated in soot 4.3.0 compared with 4.2.1? The Failed to apply jb Exception occurs again

20 Views Asked by At

When I use soot 4.3.0 to analyze firebase-admin-java-8.2.0/target/test-classes, it throws exception:

java.lang.RuntimeException: Failed to apply jb to <com.google.firebase.auth.FirebaseUserManagerTest: void testDeleteSamlProviderInvalidId()>
    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:748)
Caused by: java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification (ArrayList.java:901)
    at java.util.ArrayList$Itr.next (ArrayList.java:851)
    at soot.SootClass.getMethodsByNameAndParamCount (SootClass.java:1319)
    at soot.FastHierarchy.getSignaturePolymorphicMethod (FastHierarchy.java:982)
    at soot.FastHierarchy.resolveMethod (FastHierarchy.java:881)
    at soot.FastHierarchy.resolveMethod (FastHierarchy.java:832)
    at soot.SootMethodRefImpl.tryResolve (SootMethodRefImpl.java:229)
    at soot.SootMethodRefImpl.tryResolve (SootMethodRefImpl.java:215)
    at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow (UnitThrowAnalysis.java:305)
    at soot.toolkits.exceptions.UnitThrowAnalysis$ValueSwitch.caseInstanceInvokeExpr (UnitThrowAnalysis.java:1186)
    at soot.toolkits.exceptions.UnitThrowAnalysis$ValueSwitch.caseVirtualInvokeExpr (UnitThrowAnalysis.java:1022)
    at soot.jimple.internal.AbstractVirtualInvokeExpr.apply (AbstractVirtualInvokeExpr.java:81)
    at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow (UnitThrowAnalysis.java:297)
    at soot.toolkits.exceptions.UnitThrowAnalysis$UnitSwitch.caseInvokeStmt (UnitThrowAnalysis.java:807)
    at soot.jimple.internal.JInvokeStmt.apply (JInvokeStmt.java:99)
    at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow (UnitThrowAnalysis.java:281)
    at soot.toolkits.exceptions.UnitThrowAnalysis.mightThrow (UnitThrowAnalysis.java:276)
    at soot.toolkits.graph.ExceptionalUnitGraph.buildExceptionDests (ExceptionalUnitGraph.java:277)
    at soot.toolkits.graph.ExceptionalUnitGraph.initialize (ExceptionalUnitGraph.java:220)
    at soot.toolkits.graph.ExceptionalUnitGraph.<init> (ExceptionalUnitGraph.java:127)
    at soot.toolkits.graph.ExceptionalUnitGraphFactory.newExceptionalUnitGraph (ExceptionalUnitGraphFactory.java:55)
    at soot.toolkits.graph.ExceptionalUnitGraphFactory.createExceptionalUnitGraph (ExceptionalUnitGraphFactory.java:50)
    at soot.jimple.toolkits.scalar.UnreachableCodeEliminator.internalTransform (UnreachableCodeEliminator.java:86)
    at soot.BodyTransformer.transform (BodyTransformer.java:47)

It is worth mentioning that the exception only occurs on linux but never occurs on windows. Is there any difference between soot 4.3.0+ and 4.2.1? When I use 4.2.1, this exception disappears.

0

There are 0 best solutions below