JordanSamhi / AndroLog

An Android Instrumentation tool to compute Code Coverage
GNU Lesser General Public License v2.1
5 stars 0 forks source link

Exception in thread "Thread-24" java.util.ConcurrentModificationException #2

Open Mann-Nariya opened 3 weeks ago

Mann-Nariya commented 3 weeks ago

I was able to successfully generate the instrumented file for an APK.apk file. The instrumentation process was successful and the logfile was successfully made capturing the logs from running the instrumented APK file installed on the device. The first two steps of AndroLog were successful. But when I tried to generate the report in the third step I came across some issues.

I tried running the following command to generate a code coverage report of the app using the logfile and original apk.

java -jar AndroLog-main/target/androlog-0.1-jar-with-dependencies.jar -p Android/Sdk/platforms -l MY_SUPER_LOG -a APK.apk -c -m -cp -s -pa APK_log
But I got this error:

[*] Setting up environment...
[✓] Done.
[*] Generating Code Coverage Report...
Exception in thread "Thread-24" java.util.ConcurrentModificationException
    at java.base/java.util.HashMap.merge(HashMap.java:1393)
    at com.jordansamhi.androlog.SummaryBuilder.increment(SummaryBuilder.java:76)
    at com.jordansamhi.androlog.SummaryBuilder.incrementComponent(SummaryBuilder.java:87)
    at com.jordansamhi.androlog.SummaryBuilder.lambda$getInfoStatements$3(SummaryBuilder.java:179)
    at com.jordansamhi.androlog.SummaryBuilder$1.internalTransform(SummaryBuilder.java:65)
    at soot.BodyTransformer.transform(BodyTransformer.java:47)
    at soot.Transform.apply(Transform.java:126)
    at soot.BodyPack.internalApply(BodyPack.java:49)
    at soot.Pack.apply(Pack.java:126)
    at soot.PackManager.runBodyPacks(PackManager.java:992)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Exception in thread "main" java.util.ConcurrentModificationException
    at java.base/java.util.HashMap.merge(HashMap.java:1393)
    at com.jordansamhi.androlog.SummaryBuilder.increment(SummaryBuilder.java:76)
    at com.jordansamhi.androlog.SummaryBuilder.incrementComponent(SummaryBuilder.java:87)
    at com.jordansamhi.androlog.SummaryBuilder.lambda$getInfoStatements$3(SummaryBuilder.java:179)
    at com.jordansamhi.androlog.SummaryBuilder$1.internalTransform(SummaryBuilder.java:65)
    at soot.BodyTransformer.transform(BodyTransformer.java:47)
    at soot.Transform.apply(Transform.java:126)
    at soot.BodyPack.internalApply(BodyPack.java:49)
    at soot.Pack.apply(Pack.java:126)
    at soot.PackManager.runBodyPacks(PackManager.java:992)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Exception in thread "Thread-17" java.util.ConcurrentModificationException
    at java.base/java.util.HashMap.merge(HashMap.java:1393)
    at com.jordansamhi.androlog.SummaryBuilder.increment(SummaryBuilder.java:76)
    at com.jordansamhi.androlog.SummaryBuilder.incrementComponent(SummaryBuilder.java:87)
    at com.jordansamhi.androlog.SummaryBuilder.lambda$getInfoStatements$3(SummaryBuilder.java:179)
    at com.jordansamhi.androlog.SummaryBuilder$1.internalTransform(SummaryBuilder.java:65)
    at soot.BodyTransformer.transform(BodyTransformer.java:47)
    at soot.Transform.apply(Transform.java:126)
    at soot.BodyPack.internalApply(BodyPack.java:49)
    at soot.Pack.apply(Pack.java:126)
    at soot.PackManager.runBodyPacks(PackManager.java:992)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)

Many different log files are getting the same exception.

Please take a look at this error. Thank you for your time.

JordanSamhi commented 2 weeks ago

Hi @Mann-Nariya

Could you please share one of these apps, I will try to find the problem. Thanks !

JordanSamhi commented 1 week ago

@Mann-Nariya could you please share an app so that I investigate?

Mann-Nariya commented 1 week ago

APK Hashes: 5F5BB0AAA811EE7D660C691EEF9FDE8D6DCA5003613A38DA6E359B455A0F0C2B E51EB2C875BB44F8BB8D41BD5797FBF5CC005197C09ECDC2755E1788A2D75568

I executed the apps again for different time duration (e.g., 10, 20, and so on), stored the log files and tried generating the coverage reports for these APKs. The tool failed to generate coverage reports.