code: @Override
      public long getMaximumTimeInStore()
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "getMaximumTimeInStore");
  
          JsMessage localMsg = getJSMessage(true);
          long timeToLive = localMsg.getTimeToLive().longValue();
          long maxTime = NEVER_EXPIRES; // 180921
  
          if (timeToLive > 0)
          {
              maxTime = timeToLive - getAggregateWaitTime();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "getMaximumTimeInStore", Long.valueOf(maxTime));
  
          return maxTime;
      }
docs: Return the maximum time this message should spend in the ItemStream.
  
  If the message has no time to live then this should be the message store's
  decision. Otherwise we use the time to live less the time the message
  has already spend in the ME.
  
  This method first appeared in feature 166831.1