Program: 90237
Project: 90237
Buggy source:
@Override public Container inot(int rangeStart,int rangeEnd){
  if (rangeEnd <= rangeStart)   return this;
  if (valueslength.length <= 2 * nbrruns) {
    boolean lastValueBeforeRange=false;
    boolean firstValueInRange=false;
    boolean lastValueInRange=false;
    boolean firstValuePastRange=false;
    if (rangeStart > 0)     lastValueBeforeRange=contains((short)(rangeStart - 1));
    firstValueInRange=contains((short)rangeStart);
    if (lastValueBeforeRange == firstValueInRange) {
      lastValueInRange=contains((short)(rangeEnd - 1));
      if (rangeEnd != 65536)       firstValuePastRange=contains((short)rangeEnd);
      if (lastValueInRange == firstValuePastRange) {
        return not(rangeStart,rangeEnd);
      }
    }
  }
  int myNbrRuns=nbrruns;
  RunContainer ans=this;
  int k=0;
  ans.nbrruns=0;
  for (; (k < myNbrRuns) && ((Util.toIntUnsigned(this.getValue(k)) < rangeStart)); ++k) {
    ans.nbrruns++;
  }
  short bufferedValue=0, bufferedLength=0;
  short nextValue=0, nextLength=0;
  if (k < myNbrRuns) {
    bufferedValue=getValue(k);
    bufferedLength=getLength(k);
  }
  ans.smartAppendExclusive((short)rangeStart,(short)(rangeEnd - rangeStart - 1));
  for (; k < myNbrRuns; ++k) {
    if (ans.nbrruns > k + 1)     throw new RuntimeException("String_Node_Str" + k + "String_Node_Str"+ ans.nbrruns);
    if (k + 1 < myNbrRuns) {
      nextValue=getValue(k + 1);
      nextLength=getLength(k + 1);
    }
    ans.smartAppendExclusive(bufferedValue,bufferedLength);
    bufferedValue=nextValue;
    bufferedLength=nextLength;
  }
  return ans.toEfficientContainer();
}

Fixed version (ground truth):
@Override public Container inot(int rangeStart,int rangeEnd){
  if (rangeEnd <= rangeStart)   return this;
  if (valueslength.length <= 2 * nbrruns + 1) {
    boolean lastValueBeforeRange=false;
    boolean firstValueInRange=false;
    boolean lastValueInRange=false;
    boolean firstValuePastRange=false;
    if (rangeStart > 0)     lastValueBeforeRange=contains((short)(rangeStart - 1));
    firstValueInRange=contains((short)rangeStart);
    if (lastValueBeforeRange == firstValueInRange) {
      lastValueInRange=contains((short)(rangeEnd - 1));
      if (rangeEnd != 65536)       firstValuePastRange=contains((short)rangeEnd);
      if (lastValueInRange == firstValuePastRange) {
        return not(rangeStart,rangeEnd);
      }
    }
  }
  int myNbrRuns=nbrruns;
  RunContainer ans=this;
  int k=0;
  ans.nbrruns=0;
  for (; (k < myNbrRuns) && ((Util.toIntUnsigned(this.getValue(k)) < rangeStart)); ++k) {
    ans.nbrruns++;
  }
  short bufferedValue=0, bufferedLength=0;
  short nextValue=0, nextLength=0;
  if (k < myNbrRuns) {
    bufferedValue=getValue(k);
    bufferedLength=getLength(k);
  }
  ans.smartAppendExclusive((short)rangeStart,(short)(rangeEnd - rangeStart - 1));
  for (; k < myNbrRuns; ++k) {
    if (ans.nbrruns > k + 1)     throw new RuntimeException("String_Node_Str" + k + "String_Node_Str"+ ans.nbrruns);
    if (k + 1 < myNbrRuns) {
      nextValue=getValue(k + 1);
      nextLength=getLength(k + 1);
    }
    ans.smartAppendExclusive(bufferedValue,bufferedLength);
    bufferedValue=nextValue;
    bufferedLength=nextLength;
  }
  return ans.toEfficientContainer();
}