Program: 8949
Project: 8949
Buggy source:
protected void sendResponse(@NotNull SessionContext context,@NotNull String path,int rev) throws IOException, SVNException {
  final SvnServerWriter writer=getWriter(context);
  sendDelta(context,path,rev);
  writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
  final SvnServerParser parser=context.getParser();
  parser.readToken(ListBeginToken.class);
  final String clientStatus=parser.readText();
switch (clientStatus) {
case "String_Node_Str":
{
      parser.readToken(ListBeginToken.class);
      parser.readToken(ListBeginToken.class);
      final int errorCode=parser.readNumber();
      final String errorMessage=parser.readText();
      final String errorFile=parser.readText();
      final int errorLine=parser.readNumber();
      parser.readToken(ListEndToken.class);
      parser.readToken(ListEndToken.class);
      parser.readToken(ListEndToken.class);
      if (errorFile.isEmpty()) {
        log.error("String_Node_Str",errorCode,errorMessage);
      }
 else {
        log.error("String_Node_Str",errorFile,errorLine,errorCode,errorMessage);
      }
      writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
      writer.listBegin().word("String_Node_Str").listBegin().listBegin().number(errorCode).string(errorMessage).string(errorFile).number(errorLine).listEnd().listEnd().listEnd();
      writer.listBegin();
      break;
    }
case "String_Node_Str":
{
    parser.skipItems();
    writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
    break;
  }
default :
{
  log.error("String_Node_Str",clientStatus);
  throw new EOFException("String_Node_Str");
}
}
}

Fixed version (ground truth):
protected void sendResponse(@NotNull SessionContext context,@NotNull String path,int rev) throws IOException, SVNException {
  final SvnServerWriter writer=getWriter(context);
  sendDelta(context,path,rev);
  writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
  final SvnServerParser parser=context.getParser();
  parser.readToken(ListBeginToken.class);
  final String clientStatus=parser.readText();
switch (clientStatus) {
case "String_Node_Str":
{
      parser.readToken(ListBeginToken.class);
      final List<FailureInfo> failures=new ArrayList<>();
      while (parser.readItem(ListBeginToken.class) != null) {
        final FailureInfo failure=new FailureInfo(parser);
        if (failure.errorFile.isEmpty()) {
          log.error("String_Node_Str",failure.errorCode,failure.errorMessage);
        }
 else {
          log.error("String_Node_Str",failure.errorFile,failure.errorLine,failure.errorCode,failure.errorMessage);
        }
        failures.add(failure);
      }
      parser.readToken(ListEndToken.class);
      writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
      writer.listBegin().word("String_Node_Str").listBegin();
      for (      FailureInfo failure : failures) {
        failure.write(writer);
      }
      writer.listEnd().listEnd();
      writer.listBegin();
      break;
    }
case "String_Node_Str":
{
    parser.skipItems();
    writer.listBegin().word("String_Node_Str").listBegin().listEnd().listEnd();
    break;
  }
default :
{
  log.error("String_Node_Str",clientStatus);
  throw new EOFException("String_Node_Str");
}
}
}