@Override
public Session<L> createSession(String id, CoarseSessionEntry<L> entry) {
CoarseSessionCacheEntry<L> cacheEntry = entry.getCacheEntry();
SessionMetaData metaData = cacheEntry.getMetaData();
MarshalledValue<Map<String, Object>, MarshallingContext> value = entry.getAttributes();
Mutator attributesMutator = metaData.isNew() ? Mutator.PASSIVE : new CacheEntryMutator<>(this.attributesCache, new SessionAttributesCacheKey(id), value);
SessionAttributes attributes = new CoarseSessionAttributes(value, this.marshaller, attributesMutator);
Mutator sessionMutator = metaData.isNew() ? Mutator.PASSIVE : new CacheEntryMutator<>(this.sessionCache, id, cacheEntry);
return new InfinispanSession<>(id, metaData, attributes, cacheEntry.getLocalContext(), this.localContextFactory, this.context, sessionMutator, this);
}