Leopard: A Tool to Detect Misuses of Java Basic Thread
If you can't click to jump to YouTube, pls copy the link below
https://youtu.be/0PrRQmkLhDg
A lightweight tool to detect thread related misuses causing resource leaks in Java.
In the Java platform, it is common to use the fundamental asynchronous thread (java.lang.Thread). However, due to garbage collection and thread interruption mechanism, it can be easily misused. The recycle of an object will be blocked if an alive thread holds a strong reference to it. In addition, the careless implementation of asynchronous thread may cause that there is not responding to the interrupt mechanism. This may result the unexpected thread related behavior and resource leak/waste.
we implement a lightweight tool named Leopard to detect them statically, which is a very fast one with the demand-driven slicing analysis. It reduces false negatives caused by the heavyweight time-consuming path sensitive analysis proposed by existing work.
NO. | App | Fork | Star | #Download on GooglePaly | #Misuse (*Fixed) | Confirmed Issue Id |
---|---|---|---|---|---|---|
01 | VocableTrainer | 10 | 27 | - | 1 | 93 |
02 | toposuite | 2 | 12 | 5,000+ | 4 | 3 |
03 | APK-Explorer-Editorcite | 53 | 278 | 100+ | 1* | 29 |
04 | LRC-Editorcite | 9 | 43 | 100,000+ | 3 | 35 |
05 | Nextcloudcite | 1.5K | 3.2K | 100,000+ | 7 | 10691 |
06 | TRIfAcite | 52 | 220 | - | 14 | 382 |
07 | AppManagercite | 174 | 2.3K | - | 1 | 854 |
08 | Siteswap Generatorcite | 3 | 13 | 1,000+ | 9 | 55 |
09 | TC Slimcite | 66 | 1.1K | 10,000+ | 2 | 336 |
10 | blabber.imcite | 16 | 41 | - | 6* | 674 |
11 | OSMDashboardcite | 8 | 52 | 500+ | 1* | 169 |
12 | Ghost Commander | - | - | 1,000,000+ | 1* | 93 |
13 | Offline Puzzle Solver | - | 1 | - | 1* | 1 |
14 | FitoTrack | 49 | 161 | 5,000+ | 3 | 400 |
15 | Conversations | 1.3K | 4.2K | 100,000+ | 2* | 4366 |
16 | monocles chat | 7 | 10 | - | 6* | 44 |
17 | ccgt | 4 | 11 | - | 1 | 7 |
18 | Notes | 121 | 769 | 10K+ | 1* | 1574 |
- | Total | - | - | - | 66(Fixed 22) | - |
1.1 Leopard
https://github.com/cuixiaoyiyi/Leopard/tree/main/project/Leopard/Readme.md
1.2 eAsyncChecker
android-platforms(Dependencies required for soot to resolve Android)
2.1 Java Programs Go
project | version | link |
---|---|---|
apache-cxf | 3.5.2 | Go |
apache-tomcat | 10.0.20 | Go |
micronaut-cli | 3.4.2 | Go |
hivemq-ce | 2021.3 | Go |
jetty-distribution | 9.4.46.v20220331 | Go |
Junit5 | - | Go |
quarkus-cli | 2.8.0.Final | Go |
SpringFramework | 5.3.18 | Go |
wildfly | 26.1.0.Beta1 | Go |
2.2 Android Apps GO
download date : 2021-09-21 from F-Droid