Java UI : Eeffects for controlling UI object access

14Citations
Citations of this article
12Readers
Mendeley users who have this article in their library.
Get full text

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 a polymorphic 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 140KLOC) 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. © 2013 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Gordon, C. S., Dietl, W., Ernst, M. D., & Grossman, D. (2013). Java UI : Eeffects for controlling UI object access. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7920 LNCS, pp. 179–204). Springer Verlag. https://doi.org/10.1007/978-3-642-39038-8_8

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free