code: Map<Object, Object> createOrRestoreMap(FacesContext context, String prefix,
          boolean create)
      {
          ExternalContext external = context.getExternalContext();
          Map<String, Object> sessionMap = external.getSessionMap();
  
          Map<Object, Object> map = (Map<Object, Object>) sessionMap.get(prefix);
          if (map == null && create)
          {
              map = new ConcurrentHashMap<Object, Object>();
              sessionMap.put(prefix, map);
          }
          return map;
      }
docs: Create a new subkey-wrapper of the session map with the given prefix.
  This wrapper is used to implement the maps for the flash scope.
  For more information see the SubKeyMap doc.