Generating permission-based security policies
Xin Li, Hua Vy Le Thanh, et al.
DSA 2018
Recent versions of the Java standard library offer flexible locking constructs that go beyond the language's built-in monitor locks in terms of features, and that can be fine-tuned to suit specific application scenarios. Under certain conditions, the use of these constructs can improve performance significantly, by reducing lock contention. However, the code transformations needed to convert between locking constructs are non-trivial, and great care must be taken to update lock usage throughout the program consistently. We present Relocker, an automated tool that assists programmers with refactoring synchronized blocks into ReentrantLocks and ReadWriteLocks, to make exploring the performance tradeoffs among these constructs easier. In experiments on a collection of real-world Java applications, Relocker was able to refactor over 80% of built-in monitors into ReentrantLocks. Additionally, in most cases the tool could automatically infer the same ReadWriteLock usage that programmers had previously introduced manually. © 2011 ACM.
Xin Li, Hua Vy Le Thanh, et al.
DSA 2018
Vivek Kumar, Julian Dolby, et al.
PPPJ 2016
Manu Sridharan, Shay Artzi, et al.
OOPSLA 2011
Jinqiu Yang, Erik Wittern, et al.
MSR/ICSE 2018