The Great JCache Pull request :)

seems all pre-condition checks in this PR should be placed before `ensureOpen()` ?