Graphical Visualization of Java Objects, Threads, and Locks.
Isabelle Attali, Denis Caromel, Marjorie Russo · 2001
The Java language combines object-oriented and concurrency features. Both sets of features are difficult to understand and handle, and combining them increases their complexity. A program developer must be aware of objects that become locked and unreachable. Another concern is static variables, which objects can access without an explicit reference to the variables and which consequently might require unexpected locking. Objects shared by two threads can lead to a concurrent access, raising a potential synchronization problem. Deadlocks are difficult to track and handle, so debugging threaded applications is very difficult. Jitan, a visualization environment for concurrent, object-oriented programming—more specifically, for Java—provides interesting and useful solutions to these problems. Developed in the INRIA (France's national computer science research institute) Oasis project, Jitan provides both textual and graphical visualization of objects and thread activities at execution, including the object graph's topology, thread activities and status, locks, and synchronizations. Graph-oriented object visualization provides important information simply and effectively—showing, for instance, that two threads share an object. One of Jitan's main research contributions is its formal foundation and