Skip to content

cuixiaoyiyi/Leopard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 

Repository files navigation

Leopard

Video on YouTube

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.

0. FeedBack of Developers (Confirmed: 66; Fixed: 22)

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. Tools

https://github.com/cuixiaoyiyi/Leopard/tree/main/project/Leopard/Readme.md

android-platforms(Dependencies required for soot to resolve Android)

2. Benchmark

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published