Werner Dietl
wdietl@uwaterloo.ca, Room EIT 4007
JavaUI: Effects for Controlling UI Object Access
“JavaUI: Effects for Controlling UI Object Access” by C. S. Gordon, W. Dietl, M. D. Ernst, and D. Grossman. In European Conference on Object-Oriented Programming (ECOOP), July 2013, pp. 179-204.
Abstract
Most graphical user interface (GUI) libraries forbid accessing UI elements from threads other than the UI event loop thread. Violating this requirement leads to a program crash or an inconsistent UI. Unfortunately, such errors are all too common in GUI programs. We present the first type and effect system that prevents non-UI threads from accessing UI objects or invoking UI-thread-only methods. The type system still permits non-UI threads to hold and pass references to UI objects. We implemented this type system for Java and annotated 8 Java programs (over 140 kLOC) for the type system, including several of the most popular Eclipse plugins. We confirmed bugs found by unsound prior work, found an additional bug and code smells, and demonstrated that the annotation burden is low. We also describe code patterns our effect system handles less gracefully or not at all, which we believe offers lessons for those applying other effect systems to existing code.
Keywords: JavaUI, type and effect system, GUI threads
BibTeX entry:
@inproceedings{GordonDEG13, author = {C. S. Gordon and W. Dietl and M. D. Ernst and D. Grossman}, booktitle = {European Conference on Object-Oriented Programming (ECOOP)}, month = jul, }
Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author’s copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.
(This webpage was created with bibtex2web.)