@Override
	public Object get(final String key) {
		Object result = doGet(key);

		if (result != null) {
			return result;
		}

		HighLevelCacheCallback callback = new HighLevelCacheCallback() {

			@Override
			protected Object doInCache(Cache cache) {
				return cache.get(key);
			}
		};
		result = callback.process(highLevelCache);

		return result;
	}