Description
The contract of Root.commit(), Root.refresh() and Root.rebase() specify that Tree instances acquired through that Root instance become invalid after one of these methods are called.
In fact the hierarchy related methods are not affected by this, which is required for higher layers to be able to reload Tree instances that have become invalid. OTOH affected methods might not immediately throw an exception but just result in undefined behaviour. I'd like to change this such that invalid Tree instances immediately throw an IllegalStateException when accessed.