Escaping the Clone Zone: Java Runtime-Managed Snapshots Current and Future Work

Abstract

Mutable objects shared across modules may lead to unexpected results as changes to the object in one module are visible to other modules sharing the object. It is common practice in Java to defensively create a private copy of the input object state via cloning, serialization, copy constructor, or external library. No universal approach exists and each common solution has limitations or problems. The subject of this paper is a novel runtime-managed approach to declaratively unshare input object state. This approach is evaluated using an experimental OpenJDK 10. The paper summarizes the motivation for the work, describes the experimental implementation, discusses ongoing empirical work regarding desirable properties of the snapshot function, and describes plans for future research.

Publication
The Southeast Regional Programming Languages Seminar (SERPL 2019)
Matt Davis
Matt Davis
Former Member PLSE Group
Mark Hills
Mark Hills
Associate Professor

My research interests include programming languages, program analysis, and software engineering.