Program: 166592
Project: 166592
Buggy source:
@Override @Nullable public JsonToken nextToken() throws IOException {
  final JsonToken nextToken;
  if (_closed) {
    nextToken=null;
  }
 else {
    _tokenInputTotal=_currInputProcessed + _inputPtr - 1;
    _tokenInputRow=_currInputRow;
    _tokenInputCol=_inputPtr - _currInputRowStart - 1;
    final int recordType;
    if (pendingRecordType.isPresent()) {
      recordType=pendingRecordType.get();
      pendingRecordType=Optional.empty();
    }
 else {
      recordType=nextChar();
    }
    if ('.' == recordType) {
      if (_parsingContext.inObject()) {
        nextToken=JsonToken.END_OBJECT;
      }
 else       if (_parsingContext.inArray()) {
        nextToken=JsonToken.END_ARRAY;
      }
 else {
        _reportError("String_Node_Str");
        nextToken=null;
      }
      _parsingContext=_parsingContext.getParent();
    }
 else     if (_currToken != JsonToken.FIELD_NAME && _parsingContext.inObject()) {
      nextToken=JsonToken.FIELD_NAME;
      _finishString();
      _parsingContext.setCurrentName(_textBuffer.contentsAsString());
      pendingRecordType=Optional.of(recordType);
    }
 else {
switch (recordType) {
case -1:
        _handleEOF();
      close();
    nextToken=null;
  break;
case 'a':
nextToken=JsonToken.START_ARRAY;
_parsingContext=_parsingContext.createChildArrayContext(_tokenInputRow,_tokenInputCol);
break;
case 'A':
case 'S':
case 'T':
case 'F':
case 'N':
case 'D':
case 'J':
case 'O':
nextToken=JsonToken.START_OBJECT;
_parsingContext=_parsingContext.createChildObjectContext(_tokenInputRow,_tokenInputCol);
pendingRecordType=Optional.of(Character.toLowerCase(recordType));
break;
case 'o':
nextToken=JsonToken.START_OBJECT;
_parsingContext=_parsingContext.createChildObjectContext(_tokenInputRow,_tokenInputCol);
pendingRecordType=PENDING_END_OBJECT;
break;
case 's':
nextToken=JsonToken.VALUE_STRING;
_finishString();
break;
case 't':
nextToken=JsonToken.VALUE_TRUE;
break;
case 'f':
nextToken=JsonToken.VALUE_FALSE;
break;
case 'n':
nextToken=JsonToken.VALUE_NULL;
break;
case 'd':
nextToken=JsonToken.VALUE_NUMBER_INT;
nextIntegerRecord();
break;
case 'j':
nextToken=nextNumberRecord();
break;
default :
throw _constructError("String_Node_Str" + (char)recordType);
}
}
}
_currToken=nextToken;
return nextToken;
}

Fixed version (ground truth):
@Override @Nullable public JsonToken nextToken() throws IOException {
  final JsonToken nextToken;
  if (_closed) {
    nextToken=null;
  }
 else {
    _tokenInputTotal=_currInputProcessed + _inputPtr - 1;
    _tokenInputRow=_currInputRow;
    _tokenInputCol=_inputPtr - _currInputRowStart - 1;
    final int recordType;
    if (pendingRecordType.isPresent()) {
      recordType=pendingRecordType.get();
      pendingRecordType=Optional.empty();
    }
 else {
      recordType=nextChar();
    }
    if (JsonToken.FIELD_NAME == _currToken) {
      _nameCopied=false;
    }
    if ('.' == recordType) {
      if (_parsingContext.inObject()) {
        nextToken=JsonToken.END_OBJECT;
      }
 else       if (_parsingContext.inArray()) {
        nextToken=JsonToken.END_ARRAY;
      }
 else {
        _reportError("String_Node_Str");
        nextToken=null;
      }
      _parsingContext=_parsingContext.getParent();
    }
 else     if (_currToken != JsonToken.FIELD_NAME && _parsingContext.inObject()) {
      nextToken=JsonToken.FIELD_NAME;
      _finishString();
      _parsingContext.setCurrentName(_textBuffer.contentsAsString());
      pendingRecordType=Optional.of(recordType);
    }
 else {
switch (recordType) {
case -1:
        _handleEOF();
      close();
    nextToken=null;
  break;
case 'a':
nextToken=JsonToken.START_ARRAY;
_parsingContext=_parsingContext.createChildArrayContext(_tokenInputRow,_tokenInputCol);
break;
case 'A':
case 'S':
case 'T':
case 'F':
case 'N':
case 'D':
case 'J':
case 'O':
nextToken=JsonToken.START_OBJECT;
_parsingContext=_parsingContext.createChildObjectContext(_tokenInputRow,_tokenInputCol);
pendingRecordType=Optional.of(Character.toLowerCase(recordType));
break;
case 'o':
nextToken=JsonToken.START_OBJECT;
_parsingContext=_parsingContext.createChildObjectContext(_tokenInputRow,_tokenInputCol);
pendingRecordType=PENDING_END_OBJECT;
break;
case 's':
nextToken=JsonToken.VALUE_STRING;
_finishString();
break;
case 't':
nextToken=JsonToken.VALUE_TRUE;
break;
case 'f':
nextToken=JsonToken.VALUE_FALSE;
break;
case 'n':
nextToken=JsonToken.VALUE_NULL;
break;
case 'd':
nextToken=JsonToken.VALUE_NUMBER_INT;
nextIntegerRecord();
break;
case 'j':
nextToken=nextNumberRecord();
break;
default :
throw _constructError("String_Node_Str" + (char)recordType);
}
}
}
_currToken=nextToken;
return nextToken;
}