Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Runtime Exception - JSON integer is too large or small for an Int64

Đang mở
#258 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
csharp
Lĩnh vực
cli

Hướng nghiên cứu

Bắt đầu với AutoRest.Swagger/PathLevelParameterConverter.cs tại dòng 48, sau đó theo dõi SwaggerParser.Parse và lệnh OpenApiDiff được hiển thị trong báo cáo. Tái hiện lỗi với các đặc tả ConfidentialLedger được liên kết. Công việc được xem là hoàn tất khi giá trị lớn nhất trong parameters.CommitParameter có thể được xử lý mà không gặp ngoại lệ phân tích Int64 và quá trình so sánh hoàn tất.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

I'm getting the follwing runtime exception when trying to run the tool against the following two files:

Unhandled exception. Newtonsoft.Json.JsonReaderException: JSON integer 9223372036854776000 is too large or small for an Int64. Path 'parameters.CommitParameter.maximum', line 1, position 40197.
   at Newtonsoft.Json.JsonTextReader.ParseNumber(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ParseValue()
   at Newtonsoft.Json.Linq.JContainer.ReadContentFrom(JsonReader r, JsonLoadSettings settings)
   at Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(JsonReader reader, JsonLoadSettings options)
   at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)
   at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)
   at Newtonsoft.Json.Linq.JObject.Parse(String json)
   at AutoRest.Swagger.JsonConverters.PathLevelParameterConverter..ctor(String json) in D:\a\1\s\openapi-diff\src\modeler\AutoRest.Swagger\PathLevelParameterConverter.cs:line 48
   at AutoRest.Swagger.SwaggerParser.Parse(String swaggerDocument, String fileName) in D:\a\1\s\openapi-diff\src\modeler\AutoRest.Swagger\SwaggerParser.cs:line 22
   at AutoRest.Swagger.SwaggerModeler.Compare(String fileNameOld, String swaggerOld, String fileNameNew, String swaggerNew, Settings settings) in D:\a\1\s\openapi-diff\src\modeler\AutoRest.Swagger\SwaggerModeler.cs:line 29
   at OpenApiDiff.Program.Main(String[] args) in D:\a\1\s\openapi-diff\src\core\OpenApiDiff\Program.cs:line 37
Aborted

    at ChildProcess.exithandler (node:child_process:389:12)
    at ChildProcess.emit (node:events:513:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Socket.<anonymous> (node:internal/child_process:449:11)
    at Socket.emit (node:events:513:28)
    at Pipe.<anonymous> (node:net:757:14) {
  code: 134,
  killed: false,
  signal: null,
  cmd: 'dotnet /home/apiccione/.nvm/versions/node/v18.6.0/lib/node_modules/@azure/oad/dlls/OpenApiDiff.dll -o /tmp/old-resolved.json -n /tmp/new-resolved.json',
  stdout: '',
  stderr: "Unhandled exception. Newtonsoft.Json.JsonReaderException: JSON integer 9223372036854776000 is too large or small for an Int64. Path 'parameters.CommitParameter.maximum', line 1, position 40197.\n" +
    '   at Newtonsoft.Json.JsonTextReader.ParseNumber(ReadType readType)\n' +
    '   at Newtonsoft.Json.JsonTextReader.ParseValue()\n' +
    '   at Newtonsoft.Json.Linq.JContainer.ReadContentFrom(JsonReader r, JsonLoadSettings settings)\n' +
    '   at Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(JsonReader reader, JsonLoadSettings options)\n' +
    '   at Newtonsoft.Json.Linq.JObject.Load(JsonReader reader, JsonLoadSettings settings)\n' +
    '   at Newtonsoft.Json.Linq.JObject.Parse(String json, JsonLoadSettings settings)\n' +
    '   at Newtonsoft.Json.Linq.JObject.Parse(String json)\n' +
    '   at AutoRest.Swagger.JsonConverters.PathLevelParameterConverter..ctor(String json) in D:\\a\\1\\s\\openapi-diff\\src\\modeler\\AutoRest.Swagger\\PathLevelParameterConverter.cs:line 48\n' +
    '   at AutoRest.Swagger.SwaggerParser.Parse(String swaggerDocument, String fileName) in D:\\a\\1\\s\\openapi-diff\\src\\modeler\\AutoRest.Swagger\\SwaggerParser.cs:line 22\n' +
    '   at AutoRest.Swagger.SwaggerModeler.Compare(String fileNameOld, String swaggerOld, String fileNameNew, String swaggerNew, Settings settings) in D:\\a\\1\\s\\openapi-diff\\src\\modeler\\AutoRest.Swagger\\SwaggerModeler.cs:line 29\n' +
    '   at OpenApiDiff.Program.Main(String[] args) in D:\\a\\1\\s\\openapi-diff\\src\\core\\OpenApiDiff\\Program.cs:line 37\n' +
    'Aborted\n'
}

This seems to originate from parsing the maximum int64 9223372036854775807 here, which for some reason gets converted to 9223372036854776000 when the tool runs. The value is the same for both specs.

Please also find more details about the error in the CI pipeline: https://github.com/Azure/azure-rest-api-specs/pull/21659/checks?check_run_id=9712102995.

Ngôn ngữ chính
C#
Star
290
Fork
50
Merge trung bình
2 ngày 21 giờ
Pull request đã merge (30 ngày)
10

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Azure/openapi-diff

Tất cả issue của Azure/openapi-diff

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.