/**
* Returns and, if necessary, creates a context for the given session key
*/
private Map<String, Context> getSessionContexts(Object key) throws CoreRuntimeException {
if (key == null) {
throw new ScopeRuntimeException("Session key not set in request context");
}
Map<String, Context> m = contexts.get(key);
if (m != null) {
return m; // already created, return
}