The changes to RVMThread allow any method to update the execStatus, this change is a regression from the previous behaviour where only a single routine would transition the thread's status. The previous transition routine was forced to state what status it was expecting the thread to have. Without always having this expectation encoded, bugs can creep in. Indeed this is how the JSR-166 support was brought to the green thread model in a sane way. A recent bug highlighted the need for clean transition code.