docs: public boolean isReallocationRequired(SIMPMessage msg)
      throws SIResourceException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "isReallocationRequired", new Object[] { msg });
  
      boolean reallocate = false;
  
      JsMessage jsMsg = msg.getMessage();
      SIBUuid12 streamID = msg.getGuaranteedStreamUuid();
      StreamSet streamSet = getStreamSet();
  
      if(!streamID.equals(streamSet.getStreamID()))
      {
        SIResourceException e = new SIResourceException(
                                  nls.getFormattedMessage(
                                    "INTERNAL_MESSAGING_ERROR_CWSIP0001",
                                    new Object[] {
                                      "com.ibm.ws.sib.processor.gd.SourceStreamManager",
                                      "1:717:1.102"},
                                    null));
  
        // FFDC
        FFDCFilter.processException(
          e,
          "com.ibm.ws.sib.processor.gd.SourceStreamManager.isReallocationRequired",
          "1:724:1.102",
          this);
  
        SibTr.exception(tc, e);
        SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0001",
          new Object[] {
            "com.ibm.ws.sib.processor.gd.SourceStreamManager",
            "1:731:1.102"});
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "isReallocationRequired", e);
  
        throw e;
      }
  
      int priority = msg.getPriority();
      Reliability reliability = msg.getReliability();
  
      // Get the stream. Note that no synchronization is required here
      // since we can't be here if a flush is in progress.
      SourceStream sourceStream = (SourceStream) streamSet.getStream(priority,reliability);
  
      if(sourceStream != null)
      {
        TickRange tr = sourceStream.getTickRange(jsMsg.getGuaranteedValueValueTick());
  
        // Need to check if it was in uncommitting state AND if it is still outside
        // the send window.
        if (tr.isReallocationRequired() && 
            sourceStream.isOutsideSendWindow(jsMsg.getGuaranteedValueValueTick()))
          reallocate = true;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "isReallocationRequired", Boolean.valueOf(reallocate));
  
      return reallocate;
    }