code: private void changeUnknownToCompleted(long startTick, long endTick)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(
          tc,
          "changeUnknownToCompleted",
          new Object[] { Long.valueOf(startTick), Long.valueOf(endTick)});
  
      // position the cursor
      stream.setCursor(startTick);
      TickRange r1 = stream.getNext();
      TickRange r2 = r1;
      TickRange writeRange = null;
      java.util.ArrayList list = new ArrayList(5); // arbitrary size. this code is not on the usual processing path.
      // contains the latest range of completed ticks to be written
      while (r1.startstamp <= endTick)
      {
        if (r1.type == TickRange.Unknown)
        { // can include req in writeRange
          writeRange =
            startOrIncludeInWriteRange(writeRange, startTick, endTick, r1);
        }
        else
        {
          // cannot include req in the writeRange
          if (writeRange != null)
          {
            list.add(writeRange);
            writeRange = null;
          }
        }
        r2 = r1;
        r1 = stream.getNext();
        if (r1 == r2) // reached end of stream
          break; // break out of while loop
      } // end while (r1.startstamp <= endTick[i])
      if (writeRange != null)
      {
        list.add(writeRange);
        writeRange = null;
      }
      doWriteCompletedRanges(list);
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "changeUnknownToCompleted");
    }
docs: Change all unknown ticks in the range [startTick, endTick] to completed state.
  Called from withing a synchronized (this) block.
  @param startTick
  @param endTick