@Override
  public Object getAttribute(String name) {
    Object value = attributes.get(name);

    // If the value is a byte[] (meaning it came from the server),
    // deserialize it and re-add it to attributes map before returning it.
    if (value instanceof byte[]) {
      try {
        value = BlobHelper.deserializeBlob((byte[]) value);
        attributes.put(name, value);
      } catch (Exception iox) {
        LOG.error("Attribute '" + name + " contains a byte[] that cannot be deserialized due "
            + "to the following exception", iox);
      }
    }

    return value;
  }
{@inheritDoc} The actual de-serialization of any domain objects is deferred until the point at
which they are actually retrieved by the application layer.
extensions/geode-modules-session-internal/src/main/java/org/apache/geode/modules/session/internal/filter/attributes/AbstractSessionAttributes.java