It is not clear in what cases IllegalOperationException should be thrown.