Controlled, systematic, and efficient code replacement for running java programs

  • Nicoara A
  • Alonso G
  • Roscoe T
  • 25


    Mendeley users who have this article in their library.
  • 6


    Citations of this article.


In this paper we present PROSE, a system that performs reversible and systematic changes to running Java applications without requiring them to be shut down. PROSE is motivated by scenarios such as hotfixes, online program instrumentation and debugging, and evolution of critical legacy applications. In PROSE, changes to running applications are performed by replacing method bodies. To select which code to replace, PROSE supports matching based on both type information and regular expressions. New code can invoke the method it replaces, facilitating code evolution. Changes are composable, and may be reordered or selectively withdrawn at any time. Furthermore, the dynamic changes are expressed as Java classes rather than through an additional programming language. We describe the architecture of PROSE, the challenges of using aggressive inlining to achieve performance, and use standard benchmarks to demonstrate code performance comparable with, or better than, compile-time systems from the Aspect-Oriented Programming community.

Author-supplied keywords

  • and that
  • by controlled
  • bytecode instrumentation
  • can be undone at
  • dynamic
  • inlining
  • prose
  • run-time as easily as
  • run-time method code replacement
  • run-time modification
  • the first place
  • they were applied in
  • we mean that modifications

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document


  • Angela Nicoara

  • Gustavo Alonso

  • Timothy Roscoe

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free