void run() {
          while (startsIndex < mergedStartOffsets.length ||
                 endsIndex < mergedEndOffsets.length) {
            if (endsIndex == mergedEndOffsets.length) {
              Logger.getInstance(SearchArea.class).error(String.format("Merging invalid SearchArea: %s - %s", this, area));
              nextStart();
            }
            else if (startsIndex == mergedStartOffsets.length) {
              nextEnd();
            }
            else {
              int start = mergedStartOffsets[startsIndex];
              int end = mergedEndOffsets[endsIndex];
              if (start <= end) {
                nextStart();
              }
              else {
                nextEnd();
              }
            }
          }
        }
void run()