BUG: Lucene.Net.Codecs.Memory.MemoryDocValuesConsumer.AddNumericField(): was reading the long?.Value before checking to see if the value existed, and was causing the Lucene.Net.Index.TestMixedDocValuesUpdates test to fail. Simplified logic to use long?.GetValueOrDefault() instead.
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/65c483dd Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/65c483dd Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/65c483dd Branch: refs/heads/api-work Commit: 65c483dd0e5a71e994f87595d85cfff81ea4509b Parents: c45f5cb Author: Shad Storhaug <[email protected]> Authored: Fri Mar 3 09:50:16 2017 +0700 Committer: Shad Storhaug <[email protected]> Committed: Sun Mar 5 17:08:31 2017 +0700 ---------------------------------------------------------------------- src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucenenet/blob/65c483dd/src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs ---------------------------------------------------------------------- diff --git a/src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs b/src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs index aeb0237..9226eed 100644 --- a/src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs +++ b/src/Lucene.Net.Codecs/Memory/MemoryDocValuesConsumer.cs @@ -113,7 +113,7 @@ namespace Lucene.Net.Codecs.Memory if (gcd != 1) { - if (v < long.MinValue/2 || v > long.MaxValue/2) + if (v < long.MinValue / 2 || v > long.MaxValue / 2) { // in that case v - minValue might overflow and make the GCD computation return // wrong results. Since these extreme values are unlikely, we just discard @@ -169,7 +169,7 @@ namespace Lucene.Net.Codecs.Memory meta.WriteByte(MemoryDocValuesProducer.UNCOMPRESSED); // uncompressed foreach (var nv in values) { - data.WriteByte(!nv.HasValue ? (byte)0 : (byte)nv.Value); + data.WriteByte((byte)nv.GetValueOrDefault()); } } else @@ -193,7 +193,7 @@ namespace Lucene.Net.Codecs.Memory formatAndBits.BitsPerValue, PackedInt32s.DEFAULT_BUFFER_SIZE); foreach (var nv in values) { - var v = encode[nv.HasValue ? nv.Value : 0]; + var v = encode[nv.GetValueOrDefault()]; writer.Add((long)v); } @@ -211,7 +211,7 @@ namespace Lucene.Net.Codecs.Memory var writer = new BlockPackedWriter(data, MemoryDocValuesProducer.BLOCK_SIZE); foreach (var nv in values) { - writer.Add((nv.Value - minValue)/gcd); + writer.Add((nv.GetValueOrDefault() - minValue) / gcd); } writer.Finish(); } @@ -465,7 +465,7 @@ namespace Lucene.Net.Codecs.Memory if (!counts.MoveNext()) return false; - int count = (int) counts.Current; + int count = (int)counts.Current; int maxSize = count * 9; // worst case if (maxSize > buffer.Length) { @@ -473,7 +473,6 @@ namespace Lucene.Net.Codecs.Memory } EncodeValues(count); - _current.Bytes = buffer; _current.Offset = 0;
