docs: public void ensureDataAvailable() throws PersistentDataEncodingException, SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "ensureDataAvailable");
  
          // Check whether the item is still in the store
          AbstractItem item = getItem();
          if ((item == null) || !item.isInStore())
          {
              throw new NotInMessageStore();
          }
  
          // This is an unconditional caching or copy of the data, compared with a conditional
          // copy of the data which is taken by copyDataIfVulnerable
          if (_cachedPersistable == null)
          {
              _cachedPersistable = new CachedPersistable(_masterPersistable, true);
          }
          else
          {
              _cachedPersistable.cacheMemberData();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "ensureDataAvailable");
      }