Skip to content

Commit f23628f

Browse files
[Backport 7.7] PrimitiveObjectFormatter eagerly reads integer w… (#4650)
A bug in `PrimitiveObjectFormatter` which is used when deserializing `object` was eagerly reading doubles as integers. This was flagged in failing yaml test reproduce: build rest-spec -- xpack -f analytics -t t_test.yml -s "heteroscedastic t-test" Scrollbars now also collapse when running the yaml tests now that ShellProgressbar properly scrolls children into view this got to be a tad excessive Co-authored-by: Martijn Laarman <Mpdreamz@gmail.com>
1 parent 954b91a commit f23628f

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/Elasticsearch.Net/Utf8Json/Formatters/PrimitiveObjectFormatter.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ public object Deserialize(ref JsonReader reader, IJsonFormatterResolver formatte
158158
case JsonToken.Number:
159159
var numberSegment = reader.ReadNumberSegment();
160160
// conditional operator here would cast both to double, so don't use.
161+
// Check for IsDouble first, IsDouble && IsLong can both return true, prefer precision
162+
if (numberSegment.IsDouble())
163+
return NumberConverter.ReadDouble(numberSegment.Array, numberSegment.Offset, out _);
161164
if (numberSegment.IsLong())
162165
return NumberConverter.ReadInt64(numberSegment.Array, numberSegment.Offset, out _);
163166

tests/Tests.YamlRunner/Commands.fs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,16 @@ let private barOptions =
1212
ForegroundColor = ConsoleColor.Cyan,
1313
ForegroundColorDone = Nullable ConsoleColor.DarkGreen,
1414
BackgroundColor = Nullable ConsoleColor.DarkGray,
15-
ProgressCharacter = '─'
15+
ProgressCharacter = '─',
16+
CollapseWhenFinished = true
1617
)
1718
let private subBarOptions =
18-
ProgressBarOptions(ForegroundColor = ConsoleColor.Yellow, ForegroundColorDone = Nullable ConsoleColor.DarkGreen, ProgressCharacter = '─')
19+
ProgressBarOptions(
20+
ForegroundColor = ConsoleColor.Yellow,
21+
ForegroundColorDone = Nullable ConsoleColor.DarkGreen,
22+
ProgressCharacter = '─',
23+
CollapseWhenFinished = true
24+
)
1925

2026
let LocateTests namedSuite revision directoryFilter fileFilter = async {
2127
let! folders = TestsLocator.ListFolders namedSuite revision directoryFilter

0 commit comments

Comments
 (0)