  We propose, BanditRepair, a system that systematically explores and assesses
a set of possible runtime patches. The system is grounded on so-called bandit
algorithms, that are online machine learning algorithms, designed for
constantly balancing exploitation and exploration. BanditRepair's runtime
patches are based on modifying the execution state for repairing null
dereferences. BanditRepair constantly trades the ratio of automatically handled
failures for searching for new runtime patches and vice versa. We evaluate the
system with 16 null dereference field bugs, where BanditRepair identifies a
total of 8460 different runtime patches, which are composed of 1 up to 8
decisions (execution modifications) taken in a row. We are the first to finely
characterize the search space and the outcomes of runtime repair based on
execution modification.
