{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D39","name":"IL Efficiency","shortDescription":{"text":"IL Efficiency"},"helpUri":"https://codehealth.canine.dev/dimensions/D39"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"Inflate.Inflate_I (cyclomatic 101): Inflate.Inflate_I has cyclomatic complexity 101 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflate.cs"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"e555353ef190af0b9b8d3277c9530217028a6ab70e5849bde4975ef975c4116f"}},{"ruleId":"D1","level":"warning","message":{"text":"InfBlocks.Proc (cyclomatic 74): InfBlocks.Proc has cyclomatic complexity 74 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"4813ab1936bb501d85dc92ee2d8356110cb123b95ccf5f125124f72a4a80fcb2"}},{"ruleId":"D1","level":"warning","message":{"text":"InfCodes.Proc (cyclomatic 58): InfCodes.Proc has cyclomatic complexity 58 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"240a8f8991de609eca60915e728381eccb28e1ae03f1b4fe882a7f942254a72a"}},{"ruleId":"D1","level":"warning","message":{"text":"WebSocket08FrameDecoder.Decode (cyclomatic 53): WebSocket08FrameDecoder.Decode has cyclomatic complexity 53 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket08FrameDecoder.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"def90f3e9a4eee425243f5255a67ebe85900c492e3f405c2da08d3bc5f4634ab"}},{"ruleId":"D1","level":"warning","message":{"text":"Deflate.Deflate_D (cyclomatic 43): Deflate.Deflate_D has cyclomatic complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1646}}}],"partialFingerprints":{"codehealthFindingId/v1":"49f028be1c14439f64ba1cf3832e57dfa1810b67be23701ae0309f37c015061a"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpObjectDecoder.Decode (cyclomatic 41): HttpObjectDecoder.Decode has cyclomatic complexity 41 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ccfce2e5c19266e88eda18b95794d6dfc8c8ff2c27147ddbfc24ebcb21ad849"}},{"ruleId":"D1","level":"warning","message":{"text":"NetUtil.IsValidIpV6Address (cyclomatic 38): NetUtil.IsValidIpV6Address has cyclomatic complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/NetUtil.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec89f5a7eab428bfb74e6edd142885f156723fa7e581aee452fa5d3b11cb4134"}},{"ruleId":"D1","level":"warning","message":{"text":"InfTree.Huft_build (cyclomatic 33): InfTree.Huft_build has cyclomatic complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfTree.cs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"17911871993ada04f22f5b19a656cffaaf67f2fbe47fa07cd9a4ab8551079092"}},{"ruleId":"D1","level":"warning","message":{"text":"InfCodes.Inflate_fast (cyclomatic 31): InfCodes.Inflate_fast has cyclomatic complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6e6aa5bf9a1dc2185b6b2a63aeb31f2adb68b2a203a5810e4c68abf83d0c40d"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.FindMultipartDisposition (cyclomatic 29): HttpPostMultipartRequestDecoder.FindMultipartDisposition has cyclomatic complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"edb04d09895a865b808c8b47f03e84af79dacad5d17fa83deb0ddb0020793376"}},{"ruleId":"D1","level":"warning","message":{"text":"Deflate.Deflate_slow (cyclomatic 28): Deflate.Deflate_slow has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1228}}}],"partialFingerprints":{"codehealthFindingId/v1":"501787f0e406218bc2932316f1da2fe7e450c71f81c2994e6ffa8e2ef849803f"}},{"ruleId":"D1","level":"warning","message":{"text":"WebSocket08FrameEncoder.Encode (cyclomatic 28): WebSocket08FrameEncoder.Encode has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket08FrameEncoder.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"b459076458fb3481791815a26567b27216f3a7f2af597fcd5616ec9e545f54ae"}},{"ruleId":"D1","level":"warning","message":{"text":"SniHandler.Decode (cyclomatic 27): SniHandler.Decode has cyclomatic complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/SniHandler.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81217f5701739f836d28a7b23b2cc60d8710f2b972c5a98923e7088becb347b"}},{"ruleId":"D1","level":"warning","message":{"text":"StringUtil.EscapeCsv (cyclomatic 26): StringUtil.EscapeCsv has cyclomatic complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/StringUtil.cs"},"region":{"startLine":280}}}],"partialFingerprints":{"codehealthFindingId/v1":"b18505663b11ae77364ca08317e19c39504bad15843307414c430a98f21b5d95"}},{"ruleId":"D1","level":"warning","message":{"text":"ByteBufferUtil.IsUtf8 (cyclomatic 25): ByteBufferUtil.IsUtf8 has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":1086}}}],"partialFingerprints":{"codehealthFindingId/v1":"de3c124ce7c6452278a903e9d4d6ae7d5c36ef0a88fa651298da4920349bd0b4"}},{"ruleId":"D1","level":"warning","message":{"text":"ServerCookieDecoder.Decode (cyclomatic 25): ServerCookieDecoder.Decode has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cookies/ServerCookieDecoder.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"af09f682b40c484d66dfadd62a5cedbede5b749601222146f73b0250f5433b14"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.DecodeMultipart (cyclomatic 25): HttpPostMultipartRequestDecoder.DecodeMultipart has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba360bd5afde7063aea009df9512bd45d34889c3d2d66175d3515e20ce555910"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostRequestEncoder.AddBodyHttpData (cyclomatic 25): HttpPostRequestEncoder.AddBodyHttpData has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ee5ad728161c052605266604791dc0716977d57617f21b4cf293ac97257d7ba"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpObjectEncoder.Encode (cyclomatic 24): HttpObjectEncoder.Encode has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectEncoder.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba30ecc95c6438da8c5e3c9b38444da80a1bdb082c2aaabffefa7224aed893fb"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostStandardRequestDecoder.ParseBodyAttributes (cyclomatic 24): HttpPostStandardRequestDecoder.ParseBodyAttributes has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"236bb3e881c7ea53ee922ddc4be1e47065d63068c0e06642f49c7574172d47de"}},{"ruleId":"D1","level":"warning","message":{"text":"JsonObjectDecoder.Decode (cyclomatic 23): JsonObjectDecoder.Decode has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Json/JsonObjectDecoder.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"e641dccbe8cc3248a3765f82a14be1bdc1930bbc13521129225705fc5aa86ec3"}},{"ruleId":"D1","level":"warning","message":{"text":"ClientCookieDecoder.Decode (cyclomatic 23): ClientCookieDecoder.Decode has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cookies/ClientCookieDecoder.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f901bebc828e443f29f0768bbf7b167d43bcb28b5ef05da14409597768cc277"}},{"ruleId":"D1","level":"warning","message":{"text":"Deflate.Longest_match (cyclomatic 22): Deflate.Longest_match has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1376}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4e857e20589eae3993ef705e777e15222d7c8df5ac0c74db566cce5f8f65d17"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.GetFileUpload (cyclomatic 22): HttpPostMultipartRequestDecoder.GetFileUpload has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":773}}}],"partialFingerprints":{"codehealthFindingId/v1":"df26ee581f051eb9072d6d94d80c35983d923c1a9f621137546977f116739fe7"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostStandardRequestDecoder.ParseBodyAttributesStandard (cyclomatic 22): HttpPostStandardRequestDecoder.ParseBodyAttributesStandard has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"478dc9aefa0dd2969d528de7d72fc47e7c555cce92a4d955c57b839f9fe28257"}},{"ruleId":"D1","level":"warning","message":{"text":"AbstractChannelHandlerContext.CalculateSkipPropagationFlags (cyclomatic 20): AbstractChannelHandlerContext.CalculateSkipPropagationFlags has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4c4ed771ba21188624f72139830d4e958ba51e306a71b9f43fdda3f4da0acf3"}},{"ruleId":"D1","level":"warning","message":{"text":"ChunkedWriteHandler.DoFlush (cyclomatic 20): ChunkedWriteHandler.DoFlush has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Streams/ChunkedWriteHandler.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"1df774260feb70505307d10556ba6e157d4a40b36005c21f173208ff72e6f704"}},{"ruleId":"D1","level":"warning","message":{"text":"Deflate.Deflate_fast (cyclomatic 19): Deflate.Deflate_fast has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1109}}}],"partialFingerprints":{"codehealthFindingId/v1":"696185e3dffe5fc182dfc6e663e225c2947b408e48e1ca9cfd1dcac091b2d8aa"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.ReadDelimiter (cyclomatic 19): HttpPostMultipartRequestDecoder.ReadDelimiter has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1165}}}],"partialFingerprints":{"codehealthFindingId/v1":"b862959bd54808f7fe4ead5074e06cbf91155a8cd8157382ab5fa1aa19aa6e49"}},{"ruleId":"D1","level":"warning","message":{"text":"MessageAggregator.Decode (cyclomatic 18): MessageAggregator.Decode has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/MessageAggregator.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3967755075ac8c9b3a19751b12ff5c1b1ccc5b9c26cc026568630d982bb2f34"}},{"ruleId":"D1","level":"warning","message":{"text":"TlsHandler.Unwrap (cyclomatic 18): TlsHandler.Unwrap has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ddd261773341a63b0db1631a5f84a3d191f9e5f39f991135e409b16e978fff3"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpContentEncoder.Encode (cyclomatic 18): HttpContentEncoder.Encode has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpContentEncoder.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"398c7dcc58180f0a0b1332ce9be8bbd93351616f1c4ec21080f8dbff05f87c2e"}},{"ruleId":"D1","level":"warning","message":{"text":"TcpServerSocketChannelUnsafe.FinishRead (cyclomatic 17): TcpServerSocketChannelUnsafe.FinishRead has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpServerSocketChannel.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8d42eeabe17f1585ddf6d03fd4268c5dcafafa6b5ffc3adb073efc7dc3101c6"}},{"ruleId":"D1","level":"warning","message":{"text":"DateFormatter.ParseToken (cyclomatic 17): DateFormatter.ParseToken has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DateFormatter.cs"},"region":{"startLine":351}}}],"partialFingerprints":{"codehealthFindingId/v1":"16894c4a53ea07b806ab56e04dce24699389525e99911541d4655b8c865b37b8"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpContentDecoder.Decode (cyclomatic 17): HttpContentDecoder.Decode has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpContentDecoder.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebf33f4e8ae12e744d944069f3681e9f12053af55eae4cdde9357e01c398f84f"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostRequestEncoder.FinalizeRequest (cyclomatic 17): HttpPostRequestEncoder.FinalizeRequest has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":533}}}],"partialFingerprints":{"codehealthFindingId/v1":"32bebab07884dbb99ec4c7bb1859421237430b2386d3b3447da3b5e7f78d71b6"}},{"ruleId":"D1","level":"warning","message":{"text":"PerMessageDeflateClientExtensionHandshaker.HandshakeExtension (cyclomatic 17): PerMessageDeflateClientExtensionHandshaker.HandshakeExtension has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/PerMessageDeflateClientExtensionHandshaker.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb6e9f99777f8f876cdfbf60542c34c2a2b2b95072252f4e024d9770d9b13c3a"}},{"ruleId":"D1","level":"warning","message":{"text":"NetUtil.IsValidIpV4Word (cyclomatic 16): NetUtil.IsValidIpV4Word has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/NetUtil.cs"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5da8f91b80ab51c3e14b37951cf21d7a6663e151926fec074bd5bb116a00ecd"}},{"ruleId":"D1","level":"warning","message":{"text":"ChannelOutboundBuffer.GetSharedBufferList (cyclomatic 16): ChannelOutboundBuffer.GetSharedBufferList has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6268f215284826ed2b3088473134afafe48a7ed4cca822b678b21fd33a9693e"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpMethod.ValueOfInline (cyclomatic 16): HttpMethod.ValueOfInline has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpMethod.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9566e38730de3286df673a30d05841a1cc42ca1c315fa7d3a895c4a70892517"}},{"ruleId":"D1","level":"warning","message":{"text":"HttpPostRequestEncoder.EncodeNextChunkUrlEncoded (cyclomatic 16): HttpPostRequestEncoder.EncodeNextChunkUrlEncoded has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":742}}}],"partialFingerprints":{"codehealthFindingId/v1":"4eb99e7c09716fa3be173a80fd5174a8e41b6e368dafdfcb247cd29db7eb0caf"}},{"ruleId":"D2","level":"warning","message":{"text":"Inflate.Inflate_I (cognitive 264): Inflate.Inflate_I has cognitive complexity 264 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflate.cs"},"region":{"startLine":208}}}],"partialFingerprints":{"codehealthFindingId/v1":"af2042bba1d75e80d5fd2c24f201a59fbd836361f9acc363b2cedc2bf9238c3d"}},{"ruleId":"D2","level":"warning","message":{"text":"InfBlocks.Proc (cognitive 236): InfBlocks.Proc has cognitive complexity 236 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"c43b2bada5c013ddf13dec6e33e178eb7e379c86cad179eb2827c1750f2fb414"}},{"ruleId":"D2","level":"warning","message":{"text":"InfCodes.Proc (cognitive 194): InfCodes.Proc has cognitive complexity 194 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"34ad86b06df87e8f44dde8f6e94664cf63e4e785b5ce9ac922289e4b4140bfb0"}},{"ruleId":"D2","level":"warning","message":{"text":"InfCodes.Inflate_fast (cognitive 121): InfCodes.Inflate_fast has cognitive complexity 121 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"b66f9d869a6f1f7eb5a3593c6a8fb2018dc396627a354097264559123936a727"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.FindMultipartDisposition (cognitive 95): HttpPostMultipartRequestDecoder.FindMultipartDisposition has cognitive complexity 95 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":529}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0e1715e29c172adf8087f36bf65b88110af4c77b69f073a3274707e65c6ea5a"}},{"ruleId":"D2","level":"warning","message":{"text":"SniHandler.Decode (cognitive 94): SniHandler.Decode has cognitive complexity 94 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/SniHandler.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cec8190fd896677b7a2f91925dcb4ff5bc462545ba10cfdc767966cbf097d9f"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocket08FrameDecoder.Decode (cognitive 94): WebSocket08FrameDecoder.Decode has cognitive complexity 94 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket08FrameDecoder.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b3227301d1c4b6e415c13f2c2650113dbc7870f78e5a413b216a8f8461e2c67"}},{"ruleId":"D2","level":"warning","message":{"text":"InfTree.Huft_build (cognitive 79): InfTree.Huft_build has cognitive complexity 79 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfTree.cs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"e973a7d394080651031d106a290894f15d4cacc13e39f8058b22c6aba134464e"}},{"ruleId":"D2","level":"warning","message":{"text":"NetUtil.IsValidIpV6Address (cognitive 65): NetUtil.IsValidIpV6Address has cognitive complexity 65 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/NetUtil.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"37258a1f0c8f2a8f5e5af7c28e95c592a6f746bcd5ecca06aa4b52b62f13f996"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Deflate_D (cognitive 65): Deflate.Deflate_D has cognitive complexity 65 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1646}}}],"partialFingerprints":{"codehealthFindingId/v1":"9732811f1e5f17ef72ca5ceb577296186528e7607b363afc849a774794b98291"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpObjectDecoder.Decode (cognitive 58): HttpObjectDecoder.Decode has cognitive complexity 58 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c8250e6d6b73ee87d5a69f36806af2187ce7c66a418b8ad0f88c2826b04a80d"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.ReadDelimiter (cognitive 58): HttpPostMultipartRequestDecoder.ReadDelimiter has cognitive complexity 58 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1165}}}],"partialFingerprints":{"codehealthFindingId/v1":"0571c34167df5808f841c4b2d83bede0820cbc0024ef69d21556d8059d4dad6f"}},{"ruleId":"D2","level":"warning","message":{"text":"StringUtil.EscapeCsv (cognitive 56): StringUtil.EscapeCsv has cognitive complexity 56 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/StringUtil.cs"},"region":{"startLine":280}}}],"partialFingerprints":{"codehealthFindingId/v1":"91147ec1b1fbd7fae27e6d6c18953dbb193b3ebf543e40feb2d64d704b1231a6"}},{"ruleId":"D2","level":"warning","message":{"text":"ChunkedWriteHandler.DoFlush (cognitive 56): ChunkedWriteHandler.DoFlush has cognitive complexity 56 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Streams/ChunkedWriteHandler.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"d64c169167b511dcaa9fa63dda23ded71539c7cff136e933508203ee91a3d032"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Deflate_slow (cognitive 55): Deflate.Deflate_slow has cognitive complexity 55 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1228}}}],"partialFingerprints":{"codehealthFindingId/v1":"72e8544b9c4e1ca0367b2cd71817cfe22929bc155ebd6d118ce691f418500462"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostRequestEncoder.AddBodyHttpData (cognitive 51): HttpPostRequestEncoder.AddBodyHttpData has cognitive complexity 51 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"178b0d217724cd4e7a680d6fc071cf1e3243c8f9536fd8c3ede9748f5c21fc90"}},{"ruleId":"D2","level":"warning","message":{"text":"ChannelOutboundBuffer.GetSharedBufferList (cognitive 48): ChannelOutboundBuffer.GetSharedBufferList has cognitive complexity 48 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7d65de4730579e6bfcda688f0cd73fc3d59249e2c32bd184943f36bbbc35a00"}},{"ruleId":"D2","level":"warning","message":{"text":"JsonObjectDecoder.Decode (cognitive 46): JsonObjectDecoder.Decode has cognitive complexity 46 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Json/JsonObjectDecoder.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"73aca0202ee8b497717381e9236adaeaba5e0c0870189e5fcbb320fc2421d08d"}},{"ruleId":"D2","level":"warning","message":{"text":"ByteBufferUtil.IsUtf8 (cognitive 45): ByteBufferUtil.IsUtf8 has cognitive complexity 45 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":1086}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e95710a7130a0fdd37108b8c1fc98cd88ef0424cdff2c073498040bb1bb5d1b"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpObjectEncoder.Encode (cognitive 43): HttpObjectEncoder.Encode has cognitive complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectEncoder.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"452a13db425bbe52f53d33f8747ea03533bb259f38779c628172afbc74af089c"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostStandardRequestDecoder.ParseBodyAttributes (cognitive 43): HttpPostStandardRequestDecoder.ParseBodyAttributes has cognitive complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs"},"region":{"startLine":377}}}],"partialFingerprints":{"codehealthFindingId/v1":"9854f41ed02e2dd9c512df9b3db1e41fb2197ff8c72d27dd5b0d41fcc8d7b204"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpHeaders.ContainsCommaSeparatedTrimmed (cognitive 42): HttpHeaders.ContainsCommaSeparatedTrimmed has cognitive complexity 42 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpHeaders.cs"},"region":{"startLine":157}}}],"partialFingerprints":{"codehealthFindingId/v1":"72c70ce27d2eaf30bb3a331706da7393649867a001dd25f6c589af173bf4defb"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Deflate_fast (cognitive 40): Deflate.Deflate_fast has cognitive complexity 40 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1109}}}],"partialFingerprints":{"codehealthFindingId/v1":"def1b61601645fcf12e65c01a5d3af59a915544f2d71b051430e4cbb3b95059d"}},{"ruleId":"D2","level":"warning","message":{"text":"MessageAggregator.Decode (cognitive 40): MessageAggregator.Decode has cognitive complexity 40 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/MessageAggregator.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd42b7d3a0adb6dc32f0f29291a092d3822d818702e1679155c10b80186b409b"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocket08FrameEncoder.Encode (cognitive 40): WebSocket08FrameEncoder.Encode has cognitive complexity 40 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket08FrameEncoder.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8a3d15d2110ef9658124a5414b0da19a398e2028bf49e9ffdaec05b25c1a8df"}},{"ruleId":"D2","level":"warning","message":{"text":"TlsHandler.Unwrap (cognitive 39): TlsHandler.Unwrap has cognitive complexity 39 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dd7fadd4c5f0894450106a29ecc08b1cccb6830f1f15d66b10c06fed8c37609"}},{"ruleId":"D2","level":"warning","message":{"text":"ClientCookieDecoder.Decode (cognitive 39): ClientCookieDecoder.Decode has cognitive complexity 39 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cookies/ClientCookieDecoder.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"f27a8932722175fdb176e1c4766d7660f5bf2028d4217e2045d0821ad3985e67"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpContentEncoder.Encode (cognitive 38): HttpContentEncoder.Encode has cognitive complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpContentEncoder.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"925565d7273b3c8853671b4a4ab8305567360ea7d46a287029c24209705a2b9a"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.DecodeMultipart (cognitive 38): HttpPostMultipartRequestDecoder.DecodeMultipart has cognitive complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"2216a8362aab766488d9379ee898893f0781c853df838911ac38a55770027bd1"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.GetFileUpload (cognitive 38): HttpPostMultipartRequestDecoder.GetFileUpload has cognitive complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":773}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3e24174ececd068c63979b53d340b36e92410b73bc0f3dc0ee0a1fe7103a94b"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostRequestEncoder.FinalizeRequest (cognitive 38): HttpPostRequestEncoder.FinalizeRequest has cognitive complexity 38 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":533}}}],"partialFingerprints":{"codehealthFindingId/v1":"42d8e8f5df9d906298a6d648d231f7381ae9b3f6afa0d8544bd4df581b295357"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostStandardRequestDecoder.ParseBodyAttributesStandard (cognitive 37): HttpPostStandardRequestDecoder.ParseBodyAttributesStandard has cognitive complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"b38661b86f26f03f5e28a94e3a4cb5566f226f343d2f653865db2d4fd660037d"}},{"ruleId":"D2","level":"warning","message":{"text":"ServerCookieDecoder.Decode (cognitive 36): ServerCookieDecoder.Decode has cognitive complexity 36 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cookies/ServerCookieDecoder.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f18245e84eca21fed604974dc77f6b08cd9fe5de970910c699fe0db68087641"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.ReadDelimiterStandard (cognitive 36): HttpPostMultipartRequestDecoder.ReadDelimiterStandard has cognitive complexity 36 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1058}}}],"partialFingerprints":{"codehealthFindingId/v1":"aab90de57f7e0bb5a1b499c902674095acba6399c90d28653f05e8f6237dc0dd"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocketServerExtensionHandler.ChannelRead (cognitive 34): WebSocketServerExtensionHandler.ChannelRead has cognitive complexity 34 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/WebSocketServerExtensionHandler.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"281bb0026f06709582c8536a8eb3e2deef279c2e74088c9878923c2c091a9432"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpContentDecoder.Decode (cognitive 33): HttpContentDecoder.Decode has cognitive complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpContentDecoder.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"39c8c7d2b03952de991402ca59e1d22db75410529ebd0203f5772e44ed9ca6f9"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpSocketChannel.DoWrite (cognitive 32): TcpSocketChannel.DoWrite has cognitive complexity 32 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"428dc117532333ef8f935d27e5b15d8b60a66b7df0b1f7304dcef8f5b1bb433f"}},{"ruleId":"D2","level":"warning","message":{"text":"LineBasedFrameDecoder.Decode (cognitive 31): LineBasedFrameDecoder.Decode has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/LineBasedFrameDecoder.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ff0d26bbe83e6b1dcfabc7258f94eda6075d92de92d0d1ca209be428568e835"}},{"ruleId":"D2","level":"warning","message":{"text":"PerMessageDeflateClientExtensionHandshaker.HandshakeExtension (cognitive 31): PerMessageDeflateClientExtensionHandshaker.HandshakeExtension has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/PerMessageDeflateClientExtensionHandshaker.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b7d8037eb7305d1ddf53c8371712aed2c193c2e48a9be0aabe3cb22f8c85382"}},{"ruleId":"D2","level":"warning","message":{"text":"JZlibDecoder.Decode (cognitive 28): JZlibDecoder.Decode has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/JZlibDecoder.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f5a1db75348a65e291bbb1265114f1887cad1ca4810b7156ee33ebcb9ec22cb"}},{"ruleId":"D2","level":"warning","message":{"text":"DefaultChannelGroupCompletionSource.DefaultChannelGroupCompletionSource.ctor (cognitive 27): DefaultChannelGroupCompletionSource.DefaultChannelGroupCompletionSource.ctor has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Groups/DefaultChannelGroupCompletionSource.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"46babbb47bc9651358ff3194f7d9d0c434db2ac9daed94ba3e287d2bb02d109b"}},{"ruleId":"D2","level":"warning","message":{"text":"AbstractSocketByteChannel.DoWrite (cognitive 27): AbstractSocketByteChannel.DoWrite has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c7f9d3609aa2110bd9e9b810556428cf5d82e954d2f18e4b77299f2208955b2"}},{"ruleId":"D2","level":"warning","message":{"text":"DelimiterBasedFrameDecoder.Decode (cognitive 27): DelimiterBasedFrameDecoder.Decode has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DelimiterBasedFrameDecoder.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"227d09d083d646f486d1fad32d81e0dbb49d6059f08100661dafa6c9b2322a64"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostRequestEncoder.EncodeNextChunkUrlEncoded (cognitive 27): HttpPostRequestEncoder.EncodeNextChunkUrlEncoded has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":742}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf19060d7e519973712a299007ee04da6d4fbf89584b0cae94575acca1a23fb9"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocketClientExtensionHandler.ChannelRead (cognitive 27): WebSocketClientExtensionHandler.ChannelRead has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/WebSocketClientExtensionHandler.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"9320a68b101ad52419354417217ace9d6408ecc55e1b786577fc6899d855b384"}},{"ruleId":"D2","level":"warning","message":{"text":"Stack.ScavengeSome (cognitive 26): Stack.ScavengeSome has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/ThreadLocalPool.cs"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac5ae192003725df47d6f9419555e448a4aaec427466b23c51411a620f0a716c"}},{"ruleId":"D2","level":"warning","message":{"text":"StringUtil.UnescapeCsvFields (cognitive 26): StringUtil.UnescapeCsvFields has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/StringUtil.cs"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"6388b10eba4bc612673b8879d315f815a3cb218074a5e1f068c3c5bff5c64b54"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Deflate_stored (cognitive 26): Deflate.Deflate_stored has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":871}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f2fe462698b63585ecd1ed96284ca4a2970ed35688881ce2e8ae4fe06cfed46"}},{"ruleId":"D2","level":"warning","message":{"text":"ReplayingDecoder.CallDecode (cognitive 26): ReplayingDecoder.CallDecode has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/ReplayingDecoder.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"9435d8df117a6d2c466609e6665467e7b346a2cbe77c5dd8929abfea60e60197"}},{"ruleId":"D2","level":"warning","message":{"text":"ChunkedWriteHandler.Discard (cognitive 26): ChunkedWriteHandler.Discard has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Streams/ChunkedWriteHandler.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"08ae1bdfe9ef2010f15b607b5a41c1b8fe2bfa64f4bf7a80ba70e443b0272e01"}},{"ruleId":"D2","level":"warning","message":{"text":"Utf8FrameValidator.ChannelRead (cognitive 26): Utf8FrameValidator.ChannelRead has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Utf8FrameValidator.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"b46dd422074038c294b7e45671f4a27353feb0b12e6a47885a099d452aaa3131"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Fill_window (cognitive 25): Deflate.Fill_window has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1017}}}],"partialFingerprints":{"codehealthFindingId/v1":"18922c587e6b7758292efc1f5a3c4e0a284d1b773e38a1b61b3fb3795c72002c"}},{"ruleId":"D2","level":"warning","message":{"text":"ProtobufVarint32FrameDecoder.ReadRawVarint32 (cognitive 25): ProtobufVarint32FrameDecoder.ReadRawVarint32 has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Protobuf/ProtobufVarint32FrameDecoder.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"152d1adc2bf3181c6c1ee08a3b275181cbe67d6bc4e2156be9180df43c7c641b"}},{"ruleId":"D2","level":"warning","message":{"text":"PerMessageDeflateServerExtensionHandshaker.HandshakeExtension (cognitive 25): PerMessageDeflateServerExtensionHandshaker.HandshakeExtension has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/PerMessageDeflateServerExtensionHandshaker.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"309607e8fbcdac9f5365ea57cf73d0906f979bd40aac8343ba05c186fe9e3cb3"}},{"ruleId":"D2","level":"warning","message":{"text":"PooledByteBuffer.AdjustCapacity (cognitive 24): PooledByteBuffer.AdjustCapacity has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledByteBuffer.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"accfc61db0812db869ed0d602202da321c9cd0a69203ae88eb7fbd56c4d55453"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpObjectDecoder.ReadTrailingHeaders (cognitive 24): HttpObjectDecoder.ReadTrailingHeaders has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":624}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b08fd4e211dc095cd688b9eb3be53a2bc839df2f5fef3ee8a6ba42f23ba9676"}},{"ruleId":"D2","level":"warning","message":{"text":"MacAddressUtil.GetBestAvailableMac (cognitive 23): MacAddressUtil.GetBestAvailableMac has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/MacAddressUtil.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7d227580c970ec7115851ff81f09d539bf366a5e32d9f5c6de3d8d00193ec07"}},{"ruleId":"D2","level":"warning","message":{"text":"Tree.Gen_bitlen (cognitive 23): Tree.Gen_bitlen has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Tree.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6efee6d6c9c8a77178fe06e7c51e59cad7220e232a0cb67c618cfadc4c44270"}},{"ruleId":"D2","level":"warning","message":{"text":"LocalChannel.DoClose (cognitive 22): LocalChannel.DoClose has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Local/LocalChannel.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"b58f87c9db6b8d46a99282f4a4f7a0cc4b6055d25bc2c2f6508a42dd322959c5"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpObjectDecoder.ReadHeaders (cognitive 22): HttpObjectDecoder.ReadHeaders has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"79598abd1bb4f4050cfa0e2492f61340d1c9b5705dfa844ac1c345395374dd2d"}},{"ruleId":"D2","level":"warning","message":{"text":"MessageFormatter.ArrayFormat (cognitive 21): MessageFormatter.ArrayFormat has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/Logging/MessageFormatter.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a18fd0fda4ff36ae5ae73fc367ecf738487f8ab6923297c18b783d6f447aded"}},{"ruleId":"D2","level":"warning","message":{"text":"CharUtil.Split (cognitive 21): CharUtil.Split has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/CharUtil.cs"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5b6e2ad6ec33aee7fee494f219b92fcd210ad0360f20359ec749ee9eeec2557"}},{"ruleId":"D2","level":"warning","message":{"text":"CharUtil.Digit (cognitive 21): CharUtil.Digit has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/CharUtil.cs"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e8bdc9ccd669fb8975335357a7971af94d3452f8cdde9e39e4c7aec5f33cc9a"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpContentCompressor.DetermineWrapper (cognitive 21): HttpContentCompressor.DetermineWrapper has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpContentCompressor.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"d291909f5ceb5b5c7670722759bad356b9ec3d981b5db748ad16f253e9ec4fc2"}},{"ruleId":"D2","level":"warning","message":{"text":"AsciiString.Split (cognitive 20): AsciiString.Split has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":814}}}],"partialFingerprints":{"codehealthFindingId/v1":"db5a027a7684c378524f0a7e2f42018d0e2eea2492455d378ae02b7c7d0c6c9e"}},{"ruleId":"D2","level":"warning","message":{"text":"RedisDecoder.Decode (cognitive 20): RedisDecoder.Decode has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Redis/RedisDecoder.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"31e51990c91018ff0321efdcee55d652475ade5058fffcb4d100c8e8d548767b"}},{"ruleId":"D2","level":"warning","message":{"text":"CorsConfig.ToString (cognitive 20): CorsConfig.ToString has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cors/CorsConfig.cs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"984ec1649ceaf4e299f2f5aa74a7da0d5558e9adef004e26499bf14305dbff7c"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpRequestEncoder.EncodeInitialLine (cognitive 20): HttpRequestEncoder.EncodeInitialLine has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpRequestEncoder.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b5ea6aea526b452d56718ca0a446360e58728f273f4c3b92d84f4f124135ec5"}},{"ruleId":"D2","level":"warning","message":{"text":"QueryStringDecoder.DecodeComponent (cognitive 20): QueryStringDecoder.DecodeComponent has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/QueryStringDecoder.cs"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"4742dda1462f2161db0e35581771d08e7efcf0c92f4fc6051e69c16795e9d5a7"}},{"ruleId":"D2","level":"warning","message":{"text":"DefaultResourceLeak.Record0 (cognitive 19): DefaultResourceLeak.Record0 has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/ResourceLeakDetector.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a75b7ecad159441f93e2a224cfcaed2e6465cf305ab0285f99ff6dd6d223619"}},{"ruleId":"D2","level":"warning","message":{"text":"ByteBufferUtil.WriteUtf8 (cognitive 19): ByteBufferUtil.WriteUtf8 has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":338}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5a6f22083c4aeccf80576be1e852f5eb81e51445962c49a75b4a08c07dc6a41"}},{"ruleId":"D2","level":"warning","message":{"text":"ByteBufferUtil.WriteUtf8 (cognitive 19): ByteBufferUtil.WriteUtf8 has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":443}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5a6f22083c4aeccf80576be1e852f5eb81e51445962c49a75b4a08c07dc6a41"}},{"ruleId":"D2","level":"warning","message":{"text":"AbstractChannelHandlerContext.CalculateSkipPropagationFlags (cognitive 19): AbstractChannelHandlerContext.CalculateSkipPropagationFlags has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce6d22e1aff6a607e88cc2deaf2bfd1e3704eeba3d2f96da46659c84f2dd109b"}},{"ruleId":"D2","level":"warning","message":{"text":"AcquireTask.AcquireAsync (cognitive 19): AcquireTask.AcquireAsync has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Pool/FixedChannelPool.cs"},"region":{"startLine":464}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c079646e0163888f5bddf5d9fe8f69fcb69e0238a3eb5369647243ce62e1be5"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Send_tree (cognitive 19): Deflate.Send_tree has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":545}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f55854e27aa0dcb569a715dce6fa29b7de7162d2fd3f388a6a8ed5a7fa38d4d"}},{"ruleId":"D2","level":"warning","message":{"text":"DateFormatter.TryParseTime (cognitive 19): DateFormatter.TryParseTime has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DateFormatter.cs"},"region":{"startLine":130}}}],"partialFingerprints":{"codehealthFindingId/v1":"96c774c379ecaf41f7bed8d57b3d13c94d8b3b1d9951830976ee14ecebe07749"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocketClientHandshaker.FinishHandshake (cognitive 19): WebSocketClientHandshaker.FinishHandshake has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"3decc8488cab3e5aaddb4024dee945b59a716fdb3e16ab0622717cf6fd7ebd3a"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocketServerHandshaker00.NewHandshakeResponse (cognitive 19): WebSocketServerHandshaker00.NewHandshakeResponse has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker00.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"899df6db853d397ca003338470c9c9a3ab363fbda8291dd40c7e364010e8caf8"}},{"ruleId":"D2","level":"warning","message":{"text":"SocketMessageUnsafe.FinishRead (cognitive 18): SocketMessageUnsafe.FinishRead has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketMessageChannel.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"ebcf231b856c682076ac4fe2d354e9fffe94b6dd1bc004100c761302426f4b25"}},{"ruleId":"D2","level":"warning","message":{"text":"TlsHandler.Decode (cognitive 18): TlsHandler.Decode has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"80969c76bc4a29099cd18684f0f77cbb66678c2a9aa72bb8ebe002ab3b8cacc6"}},{"ruleId":"D2","level":"warning","message":{"text":"DeflateDecoder.Decode (cognitive 18): DeflateDecoder.Decode has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/DeflateDecoder.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"02163806fd4782dbe90296970dd955962edb226bb6237fecedf44831f51c4161"}},{"ruleId":"D2","level":"warning","message":{"text":"WeakOrderQueue.Transfer (cognitive 17): WeakOrderQueue.Transfer has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/ThreadLocalPool.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"45dbdac0cc9939fe4d0050d6d3695deca900310f0133d410df9b76083317fe1c"}},{"ruleId":"D2","level":"warning","message":{"text":"PoolArena.Allocate (cognitive 17): PoolArena.Allocate has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolArena.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e857776229b5639e3801ce0c75d0c123dde746cc10aef3526b09dd99652113c"}},{"ruleId":"D2","level":"warning","message":{"text":"DefaultChannelId.DefaultChannelId.ctor (cognitive 17): DefaultChannelId.DefaultChannelId.ctor has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelId.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"d381698ce57e781b2e7e38f0f5a3c30e3815d8b67b050e7cacd88a7c574f5efc"}},{"ruleId":"D2","level":"warning","message":{"text":"AbstractSocketMessageChannel.DoWrite (cognitive 17): AbstractSocketMessageChannel.DoWrite has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketMessageChannel.cs"},"region":{"startLine":129}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4528f4448bda4fdd48975c9c87752d9d45f096604ee5d616c99228c3aa949c8"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Longest_match (cognitive 17): Deflate.Longest_match has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1376}}}],"partialFingerprints":{"codehealthFindingId/v1":"444b4298231d94ad8abc0ec35ac653e92bd25510299692cfdcdb52292b9783c5"}},{"ruleId":"D2","level":"warning","message":{"text":"LengthFieldPrepender.Encode (cognitive 17): LengthFieldPrepender.Encode has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/LengthFieldPrepender.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"348bf6733667c2d4ccea86c167b4f6ed27c5d2a8f4c96b7014a98dd5fa7dbffb"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.SplitMultipartHeaderValues (cognitive 17): HttpPostMultipartRequestDecoder.SplitMultipartHeaderValues has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1520}}}],"partialFingerprints":{"codehealthFindingId/v1":"246b517b595c53c4baa3fcedbdb34e291b17740196d1daf0b4464b6a5a3fe591"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostRequestDecoder.GetMultipartDataBoundary (cognitive 17): HttpPostRequestDecoder.GetMultipartDataBoundary has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestDecoder.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f7974d9d6173a668b96a8fc33ce96cc4268bbf7f4e215d9dbf6da97820fba9e"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocketExtensionUtil.ExtractExtensions (cognitive 17): WebSocketExtensionUtil.ExtractExtensions has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/WebSocketExtensionUtil.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ea22d32c81768bd84b097688d8cfc26c365080eb95ec2403b2f7d3be1aaff42"}},{"ruleId":"D2","level":"warning","message":{"text":"WebSocket00FrameEncoder.Encode (cognitive 17): WebSocket00FrameEncoder.Encode has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket00FrameEncoder.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"c41513fec36a75aef6643db4f4abcfafb15f58049e64aba37a3a23ffe4cb3213"}},{"ruleId":"D2","level":"warning","message":{"text":"MacAddressUtil.CompareAddresses (cognitive 16): MacAddressUtil.CompareAddresses has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/MacAddressUtil.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2361c2c3ad12920e806476856c642bffa0714b52d2b11066d4233b6f1af515c"}},{"ruleId":"D2","level":"warning","message":{"text":"TcpServerSocketChannelUnsafe.FinishRead (cognitive 16): TcpServerSocketChannelUnsafe.FinishRead has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpServerSocketChannel.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"382f5a034715f01efbba0d0e9e34d2e44d6c10186e7e477877bb9f1e9fb14ff8"}},{"ruleId":"D2","level":"warning","message":{"text":"Base64.DecodeUsingPointer (cognitive 16): Base64.DecodeUsingPointer has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Base64/Base64.cs"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8d11c3f26e80991b6da76ab1ec14155a6024b2d3792a40311991796a41d77f0"}},{"ruleId":"D2","level":"warning","message":{"text":"Base64.DecodeUsingGetSet (cognitive 16): Base64.DecodeUsingGetSet has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Base64/Base64.cs"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"9125f708a9ad33f826cac736a15b57e6d70d3718beec4d01cf3e113d7a700044"}},{"ruleId":"D2","level":"warning","message":{"text":"Deflate.Scan_tree (cognitive 16): Deflate.Scan_tree has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":442}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbe490be583b0f82250f842012bc53d3d13bb1bbf1a8941e0c08c438fd9862c3"}},{"ruleId":"D2","level":"warning","message":{"text":"InfBlocks.Inflate_flush (cognitive 16): InfBlocks.Inflate_flush has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":628}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdae368f531feb2e1a3bff42b25da335cae50d6d6f19bbf6aed6e40f4a0acbfa"}},{"ruleId":"D2","level":"warning","message":{"text":"IdleStateHandler.HasOutputChanged (cognitive 16): IdleStateHandler.HasOutputChanged has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Timeout/IdleStateHandler.cs"},"region":{"startLine":457}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d70e0fe50eff4d41104673c068ebb8704bef812b44c15311e58edfc15ad1bdd"}},{"ruleId":"D2","level":"warning","message":{"text":"LoopExecutor.ShutdownGracefullyAsync (cognitive 16): LoopExecutor.ShutdownGracefullyAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/LoopExecutor.cs"},"region":{"startLine":475}}}],"partialFingerprints":{"codehealthFindingId/v1":"4477e4c25e4b8bb11755a64b5a59d85dc6d0c0d53c879acfc789f304ae314599"}},{"ruleId":"D2","level":"warning","message":{"text":"HttpPostMultipartRequestDecoder.ReadLine (cognitive 16): HttpPostMultipartRequestDecoder.ReadLine has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"e147fad6f30ecfe6680bee858d94643414122cd08d23f8dd223d770029ba40e7"}},{"ruleId":"D2","level":"warning","message":{"text":"QueryStringDecoder.DecodeParams (cognitive 16): QueryStringDecoder.DecodeParams has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/QueryStringDecoder.cs"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"a29fb10d1a3ff6e3284d0d336fae3950fd314fe68386a68283de4d0c3685c58a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: DotNetty.Buffers/AbstractByteBuffer.cs: FileTooLong \u2014 789 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"26a50bcf1d674a147c7a9610bf71a091e6cfc96d67728398916724866701a916"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: DotNetty.Buffers/ByteBufferUtil.cs: FileTooLong \u2014 557 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5609c7aa20d17a9b38c7eb1b1b8d75b1d0e1412c3610e68afd7ab1099f21bdde"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: DotNetty.Buffers/CompositeByteBuffer.cs: FileTooLong \u2014 775 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/CompositeByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"c62fa5be73199ac8ea05b8decd0e490a1de47f32b19629600aa39e27fafa5954"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Multipart/HttpPostMultipartRequestDecoder.cs: FileTooLong \u2014 787 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"499a5bce6772acbf9bedb02bbd6d9ec443d27eea8edfa8d7100bded4fd42ac17"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Multipart/HttpPostRequestEncoder.cs: FileTooLong \u2014 528 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"58a49f0b21ca32100f67295b4ef8ff548d9c24fb8950e6b8681d5d35a3eb0ba7"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Compression/Deflate.cs: FileTooLong \u2014 920 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"138d6d6e779105d3df93caeef41483a22fe2f6112da6465da38279dcab80f9ac"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Compression/Inflate.cs: FileTooLong \u2014 517 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9786df69a44d6d65a3e371a8552d00632a5224523ce49b77f34659db9fc9a225"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: DotNetty.Codecs/DefaultHeaders.cs: FileTooLong \u2014 562 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DefaultHeaders.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"44c66de8404ac692a1e23b3d4b700edc1e05e426e17e816e4bc9d0b5e76a3e38"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Utilities/AsciiString.cs: FileTooLong \u2014 756 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"12bc1b12813f63c9984eec866c551ccbe6e11a865512db1765b0181430afb522"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Channels/AbstractChannelHandlerContext.cs: FileTooLong \u2014 544 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"365a9c023e18d5443180880c5b14ac49f1d6ffc7131fb836cfac147346f9a8fb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Channels/DefaultChannelPipeline.cs: FileTooLong \u2014 604 lines."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4abcc16137f2e15e6b0d85c8afeba24f8f4b0f7c4a45296bc0a91a83df943d6"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractByteBuffer: TooManyMethods \u2014 777 lines, 210 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"83ac048e64836012e64754c79b6a2eb4536c3db08daec40d77e66b067aff8913"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractUnpooledSlicedByteBuffer: TooManyMethods \u2014 167 lines, 56 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractUnpooledSlicedByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d583627d3a624f31545159b020958d5e0e33eb325d2494c6330d0ce0f8dba64"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AdvancedLeakAwareByteBuffer: TooManyMethods \u2014 390 lines, 128 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AdvancedLeakAwareByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"df589bf930a10b0d28d679023a526da7c7d3d99ba9b403466fa295978562cb4a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AdvancedLeakAwareCompositeByteBuffer: TooManyMethods \u2014 309 lines, 102 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AdvancedLeakAwareCompositeByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"d51f4dc86885887754d1d9bd7a9fec2629e7f8bb4f81cf32bfc4c383f93df6b7"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ByteBufferUtil: TooManyMethods \u2014 549 lines, 54 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"524d45b411452c3c21385ba6c2f745aa3d45e3b5fcc15b414c608938aab2bc09"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CompositeByteBuffer: TooManyMethods \u2014 762 lines, 78 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/CompositeByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"25602afd41e7f9542ed28a35347299f9c35b1db2a8e045ecfae6f135df41ffec"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: EmptyByteBuffer: TooManyMethods \u2014 258 lines, 179 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/EmptyByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"04613f33885b8d19f64ad1b73b35974b22945d6c5a5da34575613e99c631bb36"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PoolArena: TooManyMethods \u2014 368 lines, 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolArena.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"364fcb80733c442958b36f2fb2b7fddecc53b423d632d092674b0e834e590615"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PooledDuplicatedByteBuffer: TooManyMethods \u2014 47 lines, 35 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledDuplicatedByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"7bb31ca44cdf671416103bca061039055f8f0a536cdb320bb17d0789e11d0964"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PooledHeapByteBuffer: TooManyMethods \u2014 88 lines, 32 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledHeapByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"28528f140a6cbb4036cad646d933107d68529dcbd64d4062aa0b0e9b165371ed"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PooledSlicedByteBuffer: TooManyMethods \u2014 156 lines, 58 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledSlicedByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a43eb3d01d6575acc3c53f4fb04e5f3eac3c052e4d18ff4e8645553f58534c6"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: PooledUnsafeDirectByteBuffer: TooManyMethods \u2014 92 lines, 37 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledUnsafeDirectByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1a6e14a0aef3aea84adac365f4ccacc11fac37c1f9e37aa6f8b23ff5a50f0b1"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Unpooled: TooManyMethods \u2014 219 lines, 38 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/Unpooled.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5ec39a3a92e164d919d38023369dbd03d905e15b01b7edd2ed2d59317fedfab"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: UnpooledDuplicatedByteBuffer: TooManyMethods \u2014 54 lines, 34 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/UnpooledDuplicatedByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ae66760c2a91a286c18002b7f61c723341ab25f00d7bddecc0a6214dea6b7e1"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: UnpooledHeapByteBuffer: TooManyMethods \u2014 197 lines, 57 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/UnpooledHeapByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"e1baae72d344cea46c1dc49e316622499c6bb93060ad5507980b26ac042a4ac3"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: UnpooledUnsafeDirectByteBuffer: TooManyMethods \u2014 185 lines, 41 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/UnpooledUnsafeDirectByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"715e45a8155a3ca6c6ffba805877e3e42b7f3d4e51f6e79016d38a7123e3714d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: WrappedByteBuffer: TooManyMethods \u2014 332 lines, 171 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/WrappedByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"27a222276e6c2cdbbbec0c7d7b464aacd36882fabc6c78165576fc80e9d6798c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: WrappedCompositeByteBuffer: TooManyMethods \u2014 329 lines, 166 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/WrappedCompositeByteBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"265dde294b179c82292dba6b1bf86bd7a78b20689168b8abfa8fb2069e976be2"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DefaultHttpHeaders: TooManyMethods \u2014 194 lines, 36 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/DefaultHttpHeaders.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c95b2ab9ea5380bd5f85f0a5ba449eb65a44a19f116fec6d0b0d96535cecf4a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: HttpHeaders: TooManyMethods \u2014 115 lines, 35 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpHeaders.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5412c5baa365824c2e0453942bab865d40a910bd8b0e4e99a661f33c7e589c23"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: HttpObjectDecoder: ClassTooLong \u2014 459 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"775842792f67e19041123b5cdc15b60c057f3141543a5fd07910f343cee243ff"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: HttpPostMultipartRequestDecoder: TooManyMethods \u2014 778 lines, 35 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ff3620d89c783f57501f34869c1fe49e039d66e73bc45861d270444608071a7"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: HttpPostRequestEncoder: ClassTooLong \u2014 515 lines, 25 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5c1dc4799224376da6c0a654fa34fcab1a0db73028ae3602de4838cabd0e788"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: MixedAttribute: TooManyMethods \u2014 113 lines, 32 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/MixedAttribute.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e016b5c9627c9c7897163a7ccd26d3c68c141b734b85bee12686f27045a3e6f"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Deflate: TooManyMethods \u2014 917 lines, 47 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a96ab3745b6b538b87f6c83f81d5bf1de3932581f651446dbd93917e9b55eef"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: Inflate: ClassTooLong \u2014 514 lines, 14 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflate.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"6437c9c0c1c56642c5f1b2244a605f8fe5a3afa7d19f08d88bcc827be036f66a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ZStream: TooManyMethods \u2014 160 lines, 50 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/ZStream.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fe92dce5b0b2752daed08cddc99bc33536e18892f8bda437c6d3378a6d3be79"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DefaultHeaders: TooManyMethods \u2014 511 lines, 106 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DefaultHeaders.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"cae363111cc36b026b9a09bf0172d0b39832a22fcac4a68bee830333803992d1"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Deque: TooManyMethods \u2014 278 lines, 43 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Deque.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5a741c1aa6d1fa5da7ca7a882e3eb041ad01f391ab5af1c6a616c47c147f54c"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractInternalLogger: TooManyMethods \u2014 170 lines, 39 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/Logging/AbstractInternalLogger.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1f36a8e8800b0aca85390d3f60a8464e7e683c3d39ef2523e86af251e397983"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AsciiString: TooManyMethods \u2014 747 lines, 119 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e979a3f2bdb158e74b0a261434514497a4d616ab442596ade3696a7acc7d230"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: StringUtil: TooManyMethods \u2014 281 lines, 37 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/StringUtil.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e5e7444291ae44af6af496f7ab49ef4a6468a5d180f744c74aea8cd26cc46e7"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: LoggingHandler: TooManyMethods \u2014 160 lines, 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Logging/LoggingHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf47208b69f79c73beb1546aa6fadda8362ef9d123b355aff73e0a88423ab2fd"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: LoopExecutor: TooManyMethods \u2014 265 lines, 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/LoopExecutor.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f4e713245b32af2c3daff8d90b99e31074c0338910ba235b657371be451ecc8"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: NativeMethods: TooManyMethods \u2014 172 lines, 73 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/NativeMethods.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"714f0faa74531d38ade3e872687ba5808c9fd57e8157903b08e08f48046bc2c2"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractBootstrap: TooManyMethods \u2014 186 lines, 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/AbstractBootstrap.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"60be7519d6a248305b19bc289f6ccb6958d8321bb37474d74663b31f1685cbcf"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractChannel: TooManyMethods \u2014 362 lines, 32 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannel.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"38793a1c6a896ebadc70c64f1a91c2b3897572e03e59201f00e9aadcabab3a0b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractChannelHandlerContext: TooManyMethods \u2014 532 lines, 67 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"eec600af28608db1452855e1090dc7a53f7cf174378dd25528ba86cfbd5614dd"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ChannelOutboundBuffer: TooManyMethods \u2014 331 lines, 34 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff9cdb509fa23825310de9666736fb4e1c236571663f47b63af43eec2facf5d9"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DefaultChannelPipeline: TooManyMethods \u2014 589 lines, 83 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a5f619db4b50faf6c4edb8e8f9655169d4aedc5db97ccb716fd03cf75a28465"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: EmbeddedChannel: TooManyMethods \u2014 206 lines, 40 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Embedded/EmbeddedChannel.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3aa42315100cf334337e808d9bfdd503312c28a13ce67b5414ab030c25b4e36"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: DefaultChannelGroup: TooManyMethods \u2014 155 lines, 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Groups/DefaultChannelGroup.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb11fd5704ac98f5f78ed19129309360142e5279d3f97fb99aad29b89b516072"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SocketDatagramChannel: TooManyMethods \u2014 224 lines, 34 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/SocketDatagramChannel.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e91b7d57f1c935b9d09919b279ebf47f3aa609bfab4fcc0f4bbdde7e6bb63ee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (67 lines \u00D7 3): examples/Echo.Server/Program.cs:32-88 | examples/HttpServer/Program.cs:53-112 | examples/WebSockets.Server/Program.cs:54-120"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Echo.Server/Program.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a9c1a60a1f09a3d359862a7a510d9ecb34ac644e2c088866c3e7eb8d68fcefd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (62 lines \u00D7 4): examples/Discard.Client/Program.cs:23-64 | examples/Echo.Client/Program.cs:24-67 | examples/SecureChat.Client/Program.cs:23-84 | examples/Telnet.Client/Program.cs:23-84"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Discard.Client/Program.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"566478ad0ecbca0d778b8e4c61e81ab75e55fa550cf43a822447ba88b4ff93a9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (29 lines \u00D7 2): src/DotNetty.Codecs/Compression/Deflate.cs:1110-1135 | src/DotNetty.Codecs/Compression/Deflate.cs:1229-1257"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1110}}}],"partialFingerprints":{"codehealthFindingId/v1":"3695f834a19f63b91b76720e33b2738e2fbc0808bc4573b3788be1c2108b0116"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/DeflateDecoder.cs:51-77 | src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/DeflateEncoder.cs:50-74"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/Extensions/Compression/DeflateDecoder.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"c994e4b4a2f020ca64bf260d1f359009271cceea63c84bf7b40756f56c3d01ac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/DotNetty.Codecs.Http/DefaultFullHttpRequest.cs:101-122 | src/DotNetty.Codecs.Http/DefaultFullHttpResponse.cs:115-136"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/DefaultFullHttpRequest.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"231348761461fff231a536df14188b2eac9e0bbe8371cdcb082577fb895ef2df"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/DotNetty.Common/Internal/MpscArrayQueue.cs:134-154 | src/DotNetty.Common/Internal/MpscArrayQueue.cs:177-195"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/MpscArrayQueue.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"03bd14aeed1bfedd32fb1c8281189d2692d348b808a208da39496bdd5f0b0e46"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/DiskAttribute.cs:138-158 | src/DotNetty.Codecs.Http/Multipart/MemoryAttribute.cs:118-138"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/DiskAttribute.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb516be7dcf5863e1f099fb1ca512a4df524abfe047756a5ac6143fee8eaba2a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/DiskFileUpload.cs:122-142 | src/DotNetty.Codecs.Http/Multipart/MemoryFileUpload.cs:103-123"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/DiskFileUpload.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef257f4abd38452df13261b9b9faed646c308ca7c51520c8ed0956452be13120"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 3): src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker07.cs:50-69 | src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker08.cs:51-70 | src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker13.cs:52-71"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker07.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"4926764869430dd665c2e5e262237e027bbf8435a6b8735390ad44514c485d4a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/DotNetty.Common/Utilities/AsciiString.cs:1362-1381 | src/DotNetty.Common/Utilities/AsciiString.cs:1394-1413"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":1362}}}],"partialFingerprints":{"codehealthFindingId/v1":"6380091aebd9d5811318139c1850f2cbb4bbae6337b87de2df433a64d4b02562"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/DotNetty.Transport/Channels/BatchingPendingWriteQueue.cs:167-186 | src/DotNetty.Transport/Channels/PendingWriteQueue.cs:159-178"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/BatchingPendingWriteQueue.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"e58db4ff8bfde6e7005240ae61b340e82b32d981b9a722bbb34d3f08121dc0b4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs:218-237 | src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs:263-282"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"251b4e268a7eb454788757d3617ab72eebd0fa9316ecf1381faa9242cb3bd407"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs:183-201 | src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs:150-169"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6989b9dc85e335e9c05c02f2978c06344af6ba352e36aa77a1dcaa715f8bcf3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/DotNetty.Codecs/Compression/Deflater.cs:113-130 | src/DotNetty.Codecs/Compression/ZStream.cs:175-193"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflater.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0744cd379f3dbfb7f5fc59e419f40b448d8e75c1d7f334a386d9d9d1ce5aa05"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/DotNetty.Codecs/Protobuf/ProtobufVarint32FrameDecoder.cs:75-93 | src/DotNetty.Codecs/Protobuf/ProtobufVarint32FrameDecoder.cs:103-121"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Protobuf/ProtobufVarint32FrameDecoder.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"a15edd735c5100b814383dda2aaec2e5362474ae2c3cde1a3560ea918790552a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/DotNetty.Common/Utilities/AsciiString.cs:659-676 | src/DotNetty.Common/Utilities/AsciiString.cs:689-706"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":659}}}],"partialFingerprints":{"codehealthFindingId/v1":"c69bf718444c1cd0cf72607feffe8bcae8f330dbbeafbcf035b7227b0aac2727"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/DotNetty.Common/Utilities/CharUtil.cs:221-237 | src/DotNetty.Common/Utilities/CharUtil.cs:252-268"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/CharUtil.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c80dad5a5f16d5f97104875d15dd14047428ac1a0a3cdd9a6ae9bf4a3ea53c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/DotNetty.Codecs/DateFormatter.cs:26-42 | src/DotNetty.Codecs.Http/Cookies/CookieUtil.cs:52-66"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DateFormatter.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b16cceba9355671cfe4806e06e6a669fb4e0a727a0501fefaa838a6a2ed4a0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/DotNetty.Codecs.Protobuf/ProtobufDecoder.cs:29-45 | src/DotNetty.Codecs.ProtocolBuffers/ProtobufDecoder.cs:31-47"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Protobuf/ProtobufDecoder.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3ff35e0159b2714bbd563cfd44ef8a170b222fe7b8da6ceef35f9381e6d7728"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 3): src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker07.cs:58-73 | src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker08.cs:57-72 | src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker13.cs:56-71"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker07.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"48d447691f3185b61d134e73b7912e1f3b9887ad91e29834061cce678c218a6b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfBlocks.cs:641-656 | src/DotNetty.Codecs/Compression/InfBlocks.cs:669-684"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":641}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3a91777e7bbb50b8faf074a6557190276d3472699149011df91205857cd7857"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/DotNetty.Transport.Libuv/TcpChannelConfig.cs:113-128 | src/DotNetty.Transport.Libuv/TcpServerChannelConfig.cs:112-127"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/TcpChannelConfig.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a383307a9b2f194cb130f1aad52c408fd30078675c8a8787ed3d82eed8822a0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/DotNetty.Transport.Libuv/TcpChannelConfig.cs:318-333 | src/DotNetty.Transport.Libuv/TcpServerChannelConfig.cs:168-183"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/TcpChannelConfig.cs"},"region":{"startLine":318}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a383307a9b2f194cb130f1aad52c408fd30078675c8a8787ed3d82eed8822a0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 4): src/DotNetty.Codecs/Compression/InfBlocks.cs:169-183 | src/DotNetty.Codecs/Compression/InfBlocks.cs:227-241 | src/DotNetty.Codecs/Compression/InfBlocks.cs:311-325 | src/DotNetty.Codecs/Compression/InfBlocks.cs:361-375"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"c125bb45d0472f0a7e6a2dca656945af29961b1de9519328f57e2e24a9fa59bc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/DotNetty.Transport.Libuv/EventLoopGroup.cs:93-107 | src/DotNetty.Transport.Libuv/WorkerEventLoopGroup.cs:102-114"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/EventLoopGroup.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"37c273f65bacc57b917056d629b61b8631a22073dfff7f6fc4ddb8c77e603511"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs:454-467 | src/DotNetty.Transport.Libuv/LoopExecutor.cs:361-374"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":454}}}],"partialFingerprints":{"codehealthFindingId/v1":"8df21b5141fe075aca7d3e133f292003ffe20c2e89e2cea8356232340232f9c4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/DotNetty.Transport/Bootstrapping/AbstractBootstrap.cs:431-443 | src/DotNetty.Transport/Bootstrapping/ServerBootstrap.cs:264-277"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/AbstractBootstrap.cs"},"region":{"startLine":431}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c23be7dbe230bf0d006a31161db3c7b213811b2df0a9615f6972a778f28e4ce"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/DotNetty.Transport/Channels/Sockets/AbstractSocketMessageChannel.cs:44-57 | src/DotNetty.Transport/Channels/Sockets/TcpServerSocketChannel.cs:165-178"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketMessageChannel.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1a0e196802908d5034a8b0aa117c03e6c97678aadedf4b54a3401e48b2c44f2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfBlocks.cs:427-440 | src/DotNetty.Codecs/Compression/InfBlocks.cs:464-477"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5a5d86c24db28f95dd3ed00bc9531c70d0489731e172ac503e4e3c6ac2e236c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/DotNetty.Transport.Libuv/Native/Async.cs:26-39 | src/DotNetty.Transport.Libuv/Native/Timer.cs:27-40"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/Async.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"65f896b959739fe3e76292023e6151d46c1c0992cb4d56be72fa6f8ae7977347"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/DotNetty.Buffers/CompositeByteBuffer.cs:909-921 | src/DotNetty.Buffers/CompositeByteBuffer.cs:1098-1110"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/CompositeByteBuffer.cs"},"region":{"startLine":909}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e9078c34ee2b91588a042cd4eddcc78622a3c5b83000ecb648d913ba21cc4ab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/DotNetty.Buffers/CompositeByteBuffer.cs:956-968 | src/DotNetty.Buffers/CompositeByteBuffer.cs:1172-1184"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/CompositeByteBuffer.cs"},"region":{"startLine":956}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e9078c34ee2b91588a042cd4eddcc78622a3c5b83000ecb648d913ba21cc4ab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Common/Utilities/AsciiString.cs:1321-1331 | src/DotNetty.Common/Utilities/AsciiString.cs:1346-1357"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/AsciiString.cs"},"region":{"startLine":1321}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d52d1f2fcf752799671436c6499d4eb4373342514baa08043acfb6856a18acd"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Buffers/PooledHeapByteBuffer.cs:111-122 | src/DotNetty.Buffers/UnpooledHeapByteBuffer.cs:185-196"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledHeapByteBuffer.cs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"51d353f035d07a186d67fad49e2af1d6ed82a9f0dea086165b780ec13d5ee287"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Transport/Channels/BatchingPendingWriteQueue.cs:114-125 | src/DotNetty.Transport/Channels/PendingWriteQueue.cs:110-121"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/BatchingPendingWriteQueue.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ae1c3194a9a44195b3cd7494004f865d39f2496df236d089a5d1e8767da1a96"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs:206-216 | src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs:250-261"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fc8b87fe52cab877217f4aac9b9bc43b85d276faeafaf71447d4824f8209fc"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfBlocks.cs:237-248 | src/DotNetty.Codecs/Compression/InfBlocks.cs:435-446"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":237}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b8b58085a840f2f2a190b7bf2e7eefce4a0559da71f8b9b361479af3a638db2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:173-184 | src/DotNetty.Codecs/Compression/InfCodes.cs:262-273"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cd898e33b7cf1283a1ae13e77a56c083f3e4b7a06fb1af513796c43ffba39a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:233-244 | src/DotNetty.Codecs/Compression/InfCodes.cs:309-320"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cd898e33b7cf1283a1ae13e77a56c083f3e4b7a06fb1af513796c43ffba39a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): examples/HttpServer/Program.cs:33-44 | examples/WebSockets.Server/Program.cs:33-44"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/HttpServer/Program.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2e0f8a9cb1811aca6b96c4cb464af7343bc08c149ba04f5f3b32952e11d3f67"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:352-362 | src/DotNetty.Codecs/Compression/InfCodes.cs:383-392"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":352}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd3d86cc80777b7b7128c78520dfda0ca626185ca9f1c5ded538cc504562b626"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/DiskAttribute.cs:62-72 | src/DotNetty.Codecs.Http/Multipart/MemoryAttribute.cs:53-63"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/DiskAttribute.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"f62cc47e05502faadeb3ba7c5c8ddf88a02da5c3e81f40cb8a7cf576b7e51302"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:629-638 | src/DotNetty.Codecs/Compression/InfCodes.cs:672-681"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":629}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c83fcd87d7dac50000b31720fb86ce1d74e7d862a0d90b84e0276936df30d77"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/DotNetty.Transport/Channels/Groups/DefaultChannelGroup.cs:60-68 | src/DotNetty.Transport/Channels/Groups/DefaultChannelGroup.cs:150-158"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Groups/DefaultChannelGroup.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ab139d0a8428125e6a7e7ab25ff8effb3eb9c9402385dd808cfc6ae36297a63"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:590-598 | src/DotNetty.Codecs/Compression/InfCodes.cs:606-614"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"058ae4642361cd13a736b583fa1b688fbe68b5b0f0fc08754d1b7170fcac1b3c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/DotNetty.Codecs/Compression/InfCodes.cs:507-513 | src/DotNetty.Codecs/Compression/InfCodes.cs:645-652"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":507}}}],"partialFingerprints":{"codehealthFindingId/v1":"a418999d10fca779bdfab105a131f844543e415ec91751cd3032ac296203d886"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs:273-280 | src/DotNetty.Codecs.Http/Multipart/HttpPostStandardRequestDecoder.cs:228-235"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"9df5737cccbd6746b81934ff29d3a02d007519df22658e3a61db39e40e1ea4a0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/DotNetty.Buffers/HeapByteBufferUtil.cs:54-59 | src/DotNetty.Buffers/HeapByteBufferUtil.cs:67-72"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/HeapByteBufferUtil.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d27fe5269d655e313d494cef2a904b75f1742763fa7d22938db594ea6a81a48"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/DotNetty.Codecs.Http/Multipart/DiskFileUpload.cs:95-100 | src/DotNetty.Codecs.Http/Multipart/MemoryFileUpload.cs:88-93"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/DiskFileUpload.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"04492149b2eae806c2273a005e4a9d519234f7896aeaea381dda50be38505a11"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/DotNetty.Buffers/HeapByteBufferUtil.cs:160-164 | src/DotNetty.Buffers/HeapByteBufferUtil.cs:178-182"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/HeapByteBufferUtil.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc07c7971632fa17c2ddc846cd45a444cc6fbc0dda8108bba843e5d20121834"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/DotNetty.Buffers/UnsafeByteBufferUtil.cs:149-153 | src/DotNetty.Buffers/UnsafeByteBufferUtil.cs:167-171"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/UnsafeByteBufferUtil.cs"},"region":{"startLine":149}}}],"partialFingerprints":{"codehealthFindingId/v1":"318a815ad292e0773d541444fdf87ebb79b7bb587acef5e827600ff0c1dcbdb4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/DotNetty.Codecs/Base64/Base64.cs:226-230 | src/DotNetty.Codecs/Base64/Base64.cs:235-239"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Base64/Base64.cs"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad294042b07ba312a6ad097357732ff3388bc8ed9fc0a0dd828a7fac8e6e8573"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: DotNetty.Handlers(netstandard1.3): DotNetty.Handlers(netstandard1.3): abstractness 0.07, instability 0.16, distance 0.77 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cbd13cb375347c881270ba72b08e0422b5159093b3e7e8b5881b06aa8910bf35"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: DotNetty.Codecs(netstandard1.3): DotNetty.Codecs(netstandard1.3): abstractness 0.20, instability 0.09, distance 0.71 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5a0de566dadeda1d4249e1c9df0ad09802ab2b4c73106367ad02411aab590f7b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CorsConfigBuilder (LCOM4 9): CorsConfigBuilder\u0027s methods form 9 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Cors/CorsConfigBuilder.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"44ebdd0f69b95481b3b5672fc9c15517700361eeeaadb38ad80194b590d953fc"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Timer (LCOM4 6): Timer\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/Timer.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"743a6e8d12bb3a5ddb3d156579236f1add9bb435ab449217124c38c2019b3da4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SocketDatagramChannel (LCOM4 6): SocketDatagramChannel\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/SocketDatagramChannel.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"904f75c32b68097baf2e90c2791625a5195a0d3a5f9c889177adc2224a5c5c7f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AbstractByteBuffer (LCOM4 5): AbstractByteBuffer\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractByteBuffer.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"a154366a46cc26e39b760d4493b778d24e28a310e648611fa97d45389917aaf5"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ComposedLastHttpContent (LCOM4 5): ComposedLastHttpContent\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/ComposedLastHttpContent.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"f721d61579e389eec380498acfab0025fe3819b56d385e6bbbeef705cc05931b"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Pipe (LCOM4 5): Pipe\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/Pipe.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a832ef8b021a495b4dc530d2a7fb4eb37f05cc957d0a7c1e74284dfd782fc9f"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: PoolArena (LCOM4 4): PoolArena\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolArena.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"5803570b746ea604fbff00f38248a718cd19f2d5b748d1f6a3eef2ba36f921a9"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NativeChannel (LCOM4 4): NativeChannel\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/NativeChannel.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"91c2d886aa8666a37c8f52b04b3753e6fbd51c4c0cc8d1081fbd78a861b39586"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DefaultChannelPipeline (LCOM4 4): DefaultChannelPipeline\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"b192888a5e9ed17ccff19e378e33a8ca604db0900aa04d315f390287e80d58a0"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: EmbeddedChannel (LCOM4 4): EmbeddedChannel\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Embedded/EmbeddedChannel.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2d0dddab12be778a3d6c27a20f15f9a7acad9d413571e3734b87b286981a68b"}},{"ruleId":"D8","level":"warning","message":{"text":"Coverage not measured \u2014 test suite did not build: Coverage NOT MEASURED: the repo\u0027s own test suite did not build (a C#/MSBuild compiler error in the test code), so no coverage could be collected. It is excluded from the score rather than counted as a near-zero defect. Fix the test build, or commit the Cobertura/OpenCover/lcov report your CI already produces, and real coverage will be measured."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8beb176c604706486df63d2215f767f50520c8d949b1d464345de14ded442c69"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: ReaderIndexBoundaryCheck4: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractByteBufferTests.cs"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"af261b954ee13c73d9cb59934e6a5c28073833b2cb5d5d9a8606732c30bf8f61"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: WriterIndexBoundaryCheck4: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractByteBufferTests.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b8d997e537ba41c3622429056b85bb2a5635a79360ab76766d007a96716c6c5"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: DuplicateBytesInArrayMultipleThreads: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractByteBufferTests.cs"},"region":{"startLine":2060}}}],"partialFingerprints":{"codehealthFindingId/v1":"8be109d00f5dd7ad4a307bafbd86eb5b88bb9fed83d539cff0a81220fcb8edc9"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: SliceBytesInArrayMultipleThreads: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractByteBufferTests.cs"},"region":{"startLine":2063}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea23f1169c7f6e2eb55c7141152ac3baeb1bea9b339ce76a1390726d37b91817"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): ReadBytes: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/SlicedByteBufferTest.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cd2c469c33601eb788d9afcabadf621a1b345b5fd3bd94464cbd327a6a9f5f9"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): ForEachByteDesc2: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/SlicedByteBufferTest.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"41df8027c1ab7d9184f3d4a159b88900033be04faa7d4da41d7280389519c9f2"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): ForEachByte2: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/SlicedByteBufferTest.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2fd50b44dfe49cd0ed3ec35935f6df6540173b90ab09bb33bf281319025993c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): DuplicateCapacityChange: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/SlicedByteBufferTest.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"aea1f842f33beb403b7bc80c093d7b6abe8b911e66d188a211d7a07120fdd182"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions (empty test): RetainedDuplicateCapacityChange: Test method has an empty body \u2014 it asserts nothing and exercises no code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/SlicedByteBufferTest.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f76f5d465b1f8307f58399628f2dfca508f43553a07ff8ff45858b6fc3ce7124"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: TestNewTimeoutShouldStopThrowingRejectedExecutionExceptionWhenExistingTimeoutIsExecuted: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Common.Tests/Utilities/HashedWheelTimerTest.cs"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3174879bcc5c677dba0c9b2cc399c62f6693507523d6c075ccd0b3523dcc661"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: TestReleaseClosed: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Transport.Tests/Channel/Pool/FixedChannelPoolTest.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"a422644c76f697dc882a17572485d359c6e85e7d74ef6888ac5763a581198163"}},{"ruleId":"D10","level":"warning","message":{"text":"No assertions: ChunkCorrect: Test method exercises code but verifies nothing \u2014 add an assertion."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Http.Tests/Multipart/HttpPostRequestDecoderTest.cs"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ad0f8a422db149202f0b2450249d985644b4b7df7fdb6d543e559efd36aa68e"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: Google.Protobuf: Google.Protobuf 3.2.0 \u2014 High severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"47c9453cba7e7877fba4b887b75f2a5f0c56eea3e9848feee359606bc25f2a0c"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: Microsoft.NETCore.App: Microsoft.NETCore.App [2.0.0, \u2014 ) severity. 2.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3da898dbcce723c8ee1dc50d4d7951e2d5a14124438106622ae3d27bb04f52d0"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 1.1.1 \u2014 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8825d6ed977416b8277d5ea895f04edaaca7b5e5a6741165d4362e12485d2630"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: System.Collections.Immutable: System.Collections.Immutable 1.5.0 \u2014 Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b7533073f76cabe3491fd926079b31d10343d3ff6ac7f74e45cafb70c2677014"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.NETCore.App: Microsoft.NETCore.App [2.0.0, \u2014 ) 2.0.0 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ce6d813d57adca232bc4212fbef3bebcacfb7b5c70c31743e424855fae79830b"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.3.1 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 1.1.1 \u2014 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e6e8907a832761edc8cc68ed479980106d09791624fc789e84a0a611ce2fd77d"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.Extensions.Configuration.FileExtensions: Microsoft.Extensions.Configuration.FileExtensions 1.1.1 \u2014 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2308b3272b8e9116473313cc73a5744d90f3580f536f3955330b5c31b3c1cc7f"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.Extensions.Configuration.Json: Microsoft.Extensions.Configuration.Json 1.1.1 \u2014 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"62219dced23cdbad1cd1a2f976df020980c7a5cba70dfeeeccddb341c0281026"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Microsoft.Extensions.Logging.Console: Microsoft.Extensions.Logging.Console 1.1.1 \u2014 Other,Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"34739360637d3763ff2aef750f3958efb55393b696e98d17ee9134ac40c5eca1"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: BenchmarkDotNet.Core: BenchmarkDotNet.Core 0.10.13 \u2014 Legacy BenchmarkDotNet \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cac59177c05ad73546233bd4b5e5032dc969171bdcbcffa3c0b3df3d7b952449"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/SecureChat.Client/Program.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9e210dc2d29bdfdc3249a6dac2372401ef0659027eb1313a3c3325ff24593ab"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Telnet.Client/Program.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac2fb1e478b70744bce9f19a5ae4becede97c5c4776d656b36b0c7eca2eab3c7"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/DefaultSocketChannelConfiguration.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7b4f03a1e01a3cba85b5cf85e6c41be0a0b699205de2cd4437419285723c915"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 420"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractReferenceCountedByteBuffer.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fd3bf3e9fab8726eddc0a70aea8cae04d36271d52f9f15d771a3cef0ef4a190"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 420"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Utilities/HashedWheelTimer.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"99f5d9e32e3403510b5901d0c334e2ea0ec9e833eeb015e8e8492c2468301092"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 420"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/LoopExecutor.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"17186b7aa71ab49d61b29dede72fcc55eb2a9eb707d30e2a6f185e98b4eeb357"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: maybe use Boyer Moore for efficiency. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/ByteBufferUtil.cs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"73b218b397dc791579d9d8e00c3f78c713b5412d2bf0df9306271fbd73a21756"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: No need to create a padding buffer and consolidate. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/CompositeByteBuffer.cs"},"region":{"startLine":728}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff30e8aca347f4c48b895d7c5c963cdc973471f7312c6acedbec3db525b3a159"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test if adding padding helps under contention \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolArena.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"678fe50c2792fa6ee8207cd2bff540204ca45098793defe2874061eb9f9aa6a9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test if adding padding helps under contention \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolChunk.cs"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c2a2adae0a1379792740b7765a79d8f037f52a390963c306a5495fa79ea423"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test if adding padding helps under contention \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolChunkList.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bb158670efefc5f19adbec8230562f4e3cd8264985dbfa0333063e993a339f7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test if adding padding helps under contention \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolSubpage.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd25aa0e4f4d48952cea5f728571789fb6a6c53f3dcfbf05ba7f41f018acf103"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test if adding padding helps under contention \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolThreadCache.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5be7f6a6f18cad3b6f464ee865ea1225336901bcce6b353d059be00ef39b2e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Maybe use Memory or OwnedMemory as direct arena/byte buffer type parameter in NETStandard 2.0 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolArena.cs"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"678fe50c2792fa6ee8207cd2bff540204ca45098793defe2874061eb9f9aa6a9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: maybe use cacheSize / cache.length \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolThreadCache.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5be7f6a6f18cad3b6f464ee865ea1225336901bcce6b353d059be00ef39b2e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: revisit this vs IntegerExtensions.(Ceil/Floor)Log2 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PoolThreadCache.cs"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5be7f6a6f18cad3b6f464ee865ea1225336901bcce6b353d059be00ef39b2e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: Determine reasonable default for heapArenaCount \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/PooledByteBufferAllocator.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"109fea08d7689cecd98e6d9f8fba8629d751f73a0a2ffd9467ddaf5f078837c9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Respond with Bad Request and discard the traffic \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/HttpObjectDecoder.cs"},"region":{"startLine":844}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3f932b0475a5a2eadbe320bab4e6fae9b058f132eb14e30d420cc38de9a5592"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME what do we do here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1145}}}],"partialFingerprints":{"codehealthFindingId/v1":"f957aad6a4b4dbae2a12623d1a31c1e49df949abd024b5931b6581a644c7ce7e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME what do we do here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostMultipartRequestDecoder.cs"},"region":{"startLine":1287}}}],"partialFingerprints":{"codehealthFindingId/v1":"f957aad6a4b4dbae2a12623d1a31c1e49df949abd024b5931b6581a644c7ce7e"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // Check if Post using \u0022multipart/form-data; boundary=--89421926422648 [; charset=xxx]\u0022 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestDecoder.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"48299d169cfd660770a9833dce9eeaa7bbbebe28a0075edd0a7e57e35f88f26e"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // Add Content-Length: xxx \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b0fb0936aac2df98a075c9fc10cf9b2c732568dfcac3de5941eb2f6c29c8db4"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // Add Content-Length: xxx \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/Multipart/HttpPostRequestEncoder.cs"},"region":{"startLine":505}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b0fb0936aac2df98a075c9fc10cf9b2c732568dfcac3de5941eb2f6c29c8db4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: check if it\u0027s bigger than 0x7FFFFFFFFFFFFFFF, Maybe \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocket08FrameDecoder.cs"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"885c60144f27afd300e1eac1287ed27268b8ab8f42544b6923370a44ab2b0a7f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make handshake work without HttpObjectAggregator at all. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketClientHandshaker.cs"},"region":{"startLine":241}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9ae88ff57822e1ef7dd0d0dc23d72f23563723f637ce483fab958c0d04de776"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make handshake work without HttpObjectAggregator at all. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/WebSockets/WebSocketServerHandshaker.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"02d24fb61f7b0efbc660ab70741893f9c4e837aeb0476c591fa581b45b037684"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: enforce string definition by MQTT spec \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Mqtt/MqttDecoder.cs"},"region":{"startLine":470}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c55ed15e44f4e8d5f76a098ae7a63858acf0997a30a8bc386588d90026ea819"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: review: validate? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Mqtt/MqttEncoder.cs"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"61ed40538fba460e1e25ad9374efe13b0bdcb79ecefcaeefc9250e5b597106cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: review: validate? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Mqtt/MqttEncoder.cs"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"61ed40538fba460e1e25ad9374efe13b0bdcb79ecefcaeefc9250e5b597106cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: validate against extra limitations per MQTT\u0027s UTF-8 string definition \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Mqtt/MqttEncoder.cs"},"region":{"startLine":467}}}],"partialFingerprints":{"codehealthFindingId/v1":"61ed40538fba460e1e25ad9374efe13b0bdcb79ecefcaeefc9250e5b597106cb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo: Implement ByteBufferStream to avoid allocations. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Protobuf/ProtobufEncoder.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"20c90fc256f22cc8a69d13af9659252b6886fe52e149fc8520c5519636fcbfe4"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":848}}}],"partialFingerprints":{"codehealthFindingId/v1":"113b0e1ccc4b4ee9089ac235a5e230297ad407e6b2e2c810e802b9c2b519d6dd"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflate.cs"},"region":{"startLine":1474}}}],"partialFingerprints":{"codehealthFindingId/v1":"113b0e1ccc4b4ee9089ac235a5e230297ad407e6b2e2c810e802b9c2b519d6dd"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflater.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"5399c63e7b20dde9854fe899a0116210675f13a953f4868ad43d27ee48defc43"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfTree.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"bcd633d8aca03a4b1ab3a22222508369f6abaaed34d269c64e8b7efc54d4dd4b"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflate.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b0307307b63ab5e71ea6d9eb5cf1681f8b70dbae3a537215069d20406d683bf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflater.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"e985b1583c100ea2a4ad657994e0601db0b8a0ccf9aa80188494bce5b6c6e644"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/ZStream.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aa93039b45a6ec22d1850e28f2e180e9fc0ae3f843d30e83931e68239170e28"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":270}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7f3f2ffe62cd77779b774e13bdcd77c98c3e0c31c13f0c5f90caac29e5683d4"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannel.cs"},"region":{"startLine":600}}}],"partialFingerprints":{"codehealthFindingId/v1":"eca2089c710fa19f88462014147e3722ee730ca74e245b9c127154fdfb4e07ed"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"4892b39e9546e9a249508b285393e3820a59497911216f4c2d8c4b46c3b92ccd"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/DefaultSocketChannelConfiguration.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"48a8b5d15e2e5f626f36bc3659721ff910bcccaea5b03f292ebf02538cdbe6ca"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 4 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Common.Tests/Internal/Logging/InternalLoggerFactoryTest.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"91d9013d79eb81728c9f72431aa35d6fca2277aa66b23d452bd39c802c7a9805"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Deflater.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"5399c63e7b20dde9854fe899a0116210675f13a953f4868ad43d27ee48defc43"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflater.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"e985b1583c100ea2a4ad657994e0601db0b8a0ccf9aa80188494bce5b6c6e644"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/ZStream.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aa93039b45a6ec22d1850e28f2e180e9fc0ae3f843d30e83931e68239170e28"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":643}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbece443ce535fb5ff76b4a778f14c7f017cf95c3b78efdc648987c143522a5c"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"d80231a5ca730cebe5ecf7c2ab4eb3e377f0fbbcaecc56ccdb0d90e43baa2f43"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfCodes.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"168b4d366d7399f512b4c74300ba32ab254d5ac042246d8e2a16511d75a91cae"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Inflater.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"e985b1583c100ea2a4ad657994e0601db0b8a0ccf9aa80188494bce5b6c6e644"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/Tree.cs"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"16012a5a0f89a3c0ff4190cbeada42cd9008d34d6d0021517da64630714e3224"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/ZStream.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"9aa93039b45a6ec22d1850e28f2e180e9fc0ae3f843d30e83931e68239170e28"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/SniHandler.cs"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b92d59cd62c2541039b771ec2d77eaea98e9aacb1f4ca097ee914a67ddea97a"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/AbstractBootstrap.cs"},"region":{"startLine":452}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c1440e8b46be49ff51fb85fd962004f5f16ec17052d6ccbb40704a34a817af9"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":295}}}],"partialFingerprints":{"codehealthFindingId/v1":"4892b39e9546e9a249508b285393e3820a59497911216f4c2d8c4b46c3b92ccd"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractByteBufferTests.cs"},"region":{"startLine":2093}}}],"partialFingerprints":{"codehealthFindingId/v1":"89c0041e6bf7eae7401f5245a4003b5b32b1a98c3a389dd2589c654dd080661d"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 3 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":188}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: format as XML-DOC \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/LengthFieldBasedFrameDecoder.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6c6b3e0093f43c66e59b604c54d87035a1c54b209da3043e08cf0ab6c453aeb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: we don\u0027t have a stack on EncoderException but it\u0027s present on inner exception. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/MessageToMessageEncoder.cs"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6b5b65d131001644589e4470e92b14528b3cb48ba07f50528009e82ab8760a7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: optimize: once IChannelHandlerContext allows, pass \u0022not interested in task\u0022 flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/MessageToMessageEncoder.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6b5b65d131001644589e4470e92b14528b3cb48ba07f50528009e82ab8760a7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: maxFrameLength \u002B safe skip \u002B fail-fast option (just like LengthFieldBasedFrameDecoder) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Protobuf/ProtobufVarint32FrameDecoder.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ecb80ccdf29624dd988112e6a6d8e0adeda2195dd232aa15229bb97385a5e4e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: handle fatal \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/AbstractExecutorService.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"39dc34590363d35200e06238eccf1395c8f519b5b37b0c5958680eb71bdcdea3"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // hack: enables this executor to be seen as default on Executor\u0027s worker thread. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/ExecutorTaskScheduler.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"f16a7355d202b4161c337c36365d2b22c5978f575366a8bbb5215144b02ffd24"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for fatal \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/ScheduledTask.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"40307f7c06f43f9ad887a88f1e6982e3b8302e8ccc450ad44602492f439e37d1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: revisit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdd183a82bb2b5431e6ce573fae6f3f160380762044f6d88d35f3c018fa390b9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Change the behavior of takeTask() so that it returns on timeout. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdd183a82bb2b5431e6ce573fae6f3f160380762044f6d88d35f3c018fa390b9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: ??? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":323}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdd183a82bb2b5431e6ce573fae6f3f160380762044f6d88d35f3c018fa390b9"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // XXX: Hard-coded value - will make it configurable if it is really a problem. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/SingleThreadEventExecutor.cs"},"region":{"startLine":430}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c765d80e094e65a2093852dde4b1e1d0e7773b9de0057c8335a5c491520a9bb"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // XXX: Hard-coded value - will make it configurable if it is really a problem. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/LoopExecutor.cs"},"region":{"startLine":307}}}],"partialFingerprints":{"codehealthFindingId/v1":"721cde5b54ee06f5cecd6a1b11a44f5df0d6e22dc66c8fd5df661c51ac7cfc64"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support cancellation token where used \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/TaskCompletionSource.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"b31195ba8db73789381d09581419d0a9a437688ef222d9ef3caf0ec12d256dac"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CS0414"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Concurrency/XThread.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"734e5d16163e1c21032e0323a031f1cd30167850e637c0f1a83eb67479b7c7a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: do we need to make a snapshot? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/FastThreadLocal.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"de8819cae93269ca066638c735bc14453aa5013bba5edc5dbe308c2fe7e5a030"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: port: revisit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/Logging/InternalLoggerFactory.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"549b496758eb3d5d11379e13a7de80115bb1fefec1e3d5dd8a51fedcf0307e13"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: netty has a check for whether interface is virtual but it always returns false. There is no equivalent in .NET \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/MacAddressUtil.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca900185de9effe0551922e07d1e4361f5610da04059dd42e403f8b4b9c676bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: revisit: UNSAFE.putOrderedLong -- StoreStore fence \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/Internal/MpscArrayQueue.cs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e7b78842c50e12869aa2a3dca6b1a4508f48e9c680ed690b4429b46b91e6270"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Use StackTrace class and support excludedMethods NETStandard2.0 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/ResourceLeakDetector.cs"},"region":{"startLine":383}}}],"partialFingerprints":{"codehealthFindingId/v1":"1776623d780382ec6240ab2d19621334eba893c88b36ba2ec29865dc543aa3fe"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: netcore does not have culture sensitive tolower() \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/SniHandler.cs"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"91b3522cfe2cc89d0e3fd45ea16ccbd56542bbefcc5d97eedb3267496618b6df"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support delayed initialization on an existing/active channel if in client mode \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":165}}}],"partialFingerprints":{"codehealthFindingId/v1":"af20f1a98d7368059b18f7075f4aae2324187d4db24d74289fd144cfbc340712"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //bool notifyClosure = false; // todo: netty/issues/137 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"af20f1a98d7368059b18f7075f4aae2324187d4db24d74289fd144cfbc340712"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: evaluate following: \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":638}}}],"partialFingerprints":{"codehealthFindingId/v1":"af20f1a98d7368059b18f7075f4aae2324187d4db24d74289fd144cfbc340712"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // hack: this tricks SslStream\u0027s continuation to run synchronously instead of dispatching to TP. Remove once Begin/EndRead are available. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/Tls/TlsHandler.cs"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0cf201bae9c46f84ada68ca43433aa5940ca19c665fd33b8ac890bc0b007581"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 414"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/WindowsApi.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"459172d5cab3efe0c5521014a6363a1da7348f45de1a507706ac745c51546e9a"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 169"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/Native/WindowsApi.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"459172d5cab3efe0c5521014a6363a1da7348f45de1a507706ac745c51546e9a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: async/await instead? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/ServerBootstrap.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"76a78d500da70de3371680f24e5b39b757d8180b41c1d4b513afe6f1db0d3ed5"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: attrs \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/ServerBootstrap.cs"},"region":{"startLine":250}}}],"partialFingerprints":{"codehealthFindingId/v1":"76a78d500da70de3371680f24e5b39b757d8180b41c1d4b513afe6f1db0d3ed5"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 8 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Bootstrapping/ServerBootstrap.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"fad96d5c86cc71592541c97569290dc2bb3c49d51d67c256fbc1c08ade6e739d"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 8 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":379}}}],"partialFingerprints":{"codehealthFindingId/v1":"d80231a5ca730cebe5ecf7c2ab4eb3e377f0fbbcaecc56ccdb0d90e43baa2f43"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 8 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 8 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: cancellation support \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannel.cs"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1ec8c6f4eaff6a41913e33c601a02b88488eec2951a34cbd10094a01f87589e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo closeExecutor(); \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannel.cs"},"region":{"startLine":504}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1ec8c6f4eaff6a41913e33c601a02b88488eec2951a34cbd10094a01f87589e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider caching task \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":551}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider caching task \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":590}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: consider caching task \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":771}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":617}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":653}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":685}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":711}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":737}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":799}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs"},"region":{"startLine":859}}}],"partialFingerprints":{"codehealthFindingId/v1":"d481f0784de06748e32b0ab4342c568edc383321797932afb9fef9e48dfeef0e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support progress report? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":176}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f2b5a97010da7adf8d480aff863705fb3049dd161e1389c2aac522dfbd3f66"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO:ChannelPromise \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":684}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f2b5a97010da7adf8d480aff863705fb3049dd161e1389c2aac522dfbd3f66"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO:ChannelPromise \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":692}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f2b5a97010da7adf8d480aff863705fb3049dd161e1389c2aac522dfbd3f66"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 9 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/ChannelOutboundBuffer.cs"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee0b05a358d6dfed147b1f723d087509ebcd37c9adb3b2bc52eb45fd82c9e69d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: FileRegion support \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultMessageSizeEstimator.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"eba437ae13f6f6cb8f451ed1ce4239d2ff45356780f24ae90bc4e65588ba8e93"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: FileRegion support \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: FileRegion support \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":294}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Embedded/EmbeddedChannel.cs"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d5f52797fb20483d149e4d3004d6e679be6c879d4b4a485f3a2cddfe341cc45"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: make these available through separate interface to hide them from public API on channel \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/IChannel.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5a236144837744916b09432e6187f3aefe4f9ca3720d2a1d9445bd512a3ab99"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: optimize: add flag saying if handler is interested in task, do not produce task if it isn\u0027t needed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/IChannelHandlerContext.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"08a40dcdf1930336152a35e768167866471d85d4ebfc3a848ab558beea8ed9b0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support half-closure \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: potential allocation / non-static field? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: check for \u0022sent less than attempted bytes\u0022 to avoid unnecessary extra doWriteBytes call? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /*else if (msg is FileRegion) { todo: FileRegion support\n                FileRegion region = (FileRegion) msg;\n                bool done = region.transfered() \u003E= region.count();\n                bool scheduleAsync = false;\n\n                if (!done) {\n                    long flushedAmount = 0;\n                    if (writeSpinCount == -1) {\n                        writeSpinCount = config().getWriteSpinCount();\n                    }\n\n                    for (int i = writeSpinCount - 1; i \u003E= 0; i--) {\n                        long localFlushedAmount = doWriteFileRegion(region);\n                        if (localFlushedAmount == 0) {\n                            scheduleAsync = true;\n                            break;\n                        }\n\n                        flushedAmount \u002B= localFlushedAmount;\n                        if (region.transfered() \u003E= region.count()) {\n                            done = true;\n                            break;\n                        }\n                    }\n\n                    input.progress(flushedAmount);\n                }\n\n                if (done) {\n                    input.remove();\n                } else {\n                    incompleteWrite(scheduleAsync);\n                    break;\n                }\n            }*/ \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: support FileRegion \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketByteChannel.cs"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"24d53ee4f5c0cd5326109ec2bd243788e43e67db0a167b9a1a967bb3528770a2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: add input shutdown and read pending here as well? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: think of a better way to comm exception \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: handle cancellation \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: make static / cache delegate?.. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: call Socket.CancelConnectAsync(...) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: does it make sense now that we\u0027ve actually written out everything that was flushed previously? concurrent flush handling? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketChannel.cs"},"region":{"startLine":422}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9e6342945fc56bde99951cc1827ddd818a63d9568078d707b91e476c8732f1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: other conditions for not closing message-based socket? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/AbstractSocketMessageChannel.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"38122c0e50c4752445fe38ef76f75a5cdc45dc8b288740ce95f2ab3ab2122818"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //todo: NetUtil.SOMAXCONN; \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/DefaultServerSocketChannelConfig.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f6f740bde15363b528ebec3c7609364747f28d47b664e64d24c6ec799458610"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: impl with stateflags \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"2201a28d0b9050c9be9456e91082fcc138442c6f8a7614dc9e5d1bd2829d6929"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: use closeExecutor if available \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"2201a28d0b9050c9be9456e91082fcc138442c6f8a7614dc9e5d1bd2829d6929"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: review \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/Sockets/TcpSocketChannel.cs"},"region":{"startLine":378}}}],"partialFingerprints":{"codehealthFindingId/v1":"2201a28d0b9050c9be9456e91082fcc138442c6f8a7614dc9e5d1bd2829d6929"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: // XXX Same tests with several buffers in wrappedCheckedBuffer \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractCompositeByteBufferTests.cs"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b5dc52351e74500b46938098b6c29e22b7c6bc56bad0a84044c4a726b137779"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: //XXX Same tests than testEquals with written AggregateChannelBuffers \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Buffers.Tests/AbstractCompositeByteBufferTests.cs"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b5dc52351e74500b46938098b6c29e22b7c6bc56bad0a84044c4a726b137779"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591, 0612, 3021"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Protobuf.Tests/Addressbook.cs"},"region":{"startLine":3}}}],"partialFingerprints":{"codehealthFindingId/v1":"3a216aff5e5ae79f323d71359523373091e3bb786a5b42535af24e82fba84fc5"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable 1591, 0612, 3021"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.ProtocolBuffers.Tests/Addressbook.cs"},"region":{"startLine":2}}}],"partialFingerprints":{"codehealthFindingId/v1":"e93b940513eacd8f20b359a9e45904af2468e5c12cc797c01d7be5788b56456b"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 6 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 11 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Codecs.Tests/Base64Test.cs"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"414c437b36400659dcc1548ff709ba0ee4e5a43237063b78949cba174aaf6faf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo: CodeContracts on CI \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Common.Tests/Internal/Logging/InternalLoggerFactoryTest.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"127928f5807970f6395b7ea0bcb2a088ef98ce7de11667bc9a22d314acaae5e8"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: No NANOSECONDS(0.01 Ticks) support in DotNetty for IdleStateHandler, but is it really needed? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Handlers.Tests/IdleStateHandlerTest.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"04ab44d51133960ff8e76f32a0357172e59c047f69ab6e792e4293784bd134fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo verify \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Tests.End2End/End2EndTests.cs"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"b220017c299fd459e08b10a07cbf8a968ae2713dd9f3c276127f56d1ba1e2ffb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo verify \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Tests.End2End/End2EndTests.cs"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"b220017c299fd459e08b10a07cbf8a968ae2713dd9f3c276127f56d1ba1e2ffb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo verify \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Tests.End2End/End2EndTests.cs"},"region":{"startLine":259}}}],"partialFingerprints":{"codehealthFindingId/v1":"b220017c299fd459e08b10a07cbf8a968ae2713dd9f3c276127f56d1ba1e2ffb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo verify \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Tests.End2End/End2EndTests.cs"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"b220017c299fd459e08b10a07cbf8a968ae2713dd9f3c276127f56d1ba1e2ffb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // todo verify \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/DotNetty.Tests.End2End/End2EndTests.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"b220017c299fd459e08b10a07cbf8a968ae2713dd9f3c276127f56d1ba1e2ffb"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj repeated across 11 files: The identical NoWarnInCsproj (\u0060CS1591\u0060) appears in 11 files (11 occurrences) \u2014 a single repo-wide policy (e.g. a Directory.Build.props decision or an idiomatic suppression), not 11 independent debts. Decide it once centrally rather than file-by-file. (Every occurrence still counts toward the score and metrics.)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/DotNetty.Transport.csproj"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed2a3b2a1567a945fea5a84ea6fdffa57b6f1c06db1eb1c6290b82240f6a7a11"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 2008"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/UWPEcho.Client/UWPEcho.Client.csproj"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0f4fee2dc015ed3c460f53226e41373e13b5ab360c0bd7d017f20ab3102023"}},{"ruleId":"D18","level":"warning","message":{"text":"Monorepo: only 1 of 2 solutions was scored: This repository contains 2 .NET solutions, but a scan analyzes ONE. Every score, lens, and finding here reflects only \u0060DotNetty.sln\u0060 \u2014 the other 1 (\u0060examples/UWPEcho.Client/UWPEcho.Client.sln\u0060) were not analyzed and are not represented in the headline. To cover them, scan each solution as its own target and group them in a Solution or Product for a portfolio roll-up. If a secondary solution is an archived or vendored tree, declare it \u2014 \u0060.gitattributes\u0060 (\u0060path/** linguist-vendored\u0060) or \u0060.editorconfig\u0060 (\u0060[path/**] generated_code = true\u0060) \u2014 to exclude it from discovery the same way generated code is."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a714c749a7ed0270f25ef54f0d77846abefb01ce5214d0fe8c64e4324d302faf"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Common(netstandard1.3): DotNetty.Common(netstandard1.3): 20 % XML-doc coverage (192/946)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Common/DotNetty.Common.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e39a804b6aa98ce0249124de2359aac9552520b7175524a79d752afdd916af66"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Buffers(netstandard1.3): DotNetty.Buffers(netstandard1.3): 5 % XML-doc coverage (82/1552)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/DotNetty.Buffers.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c15d6665eed5a6273f5142a7f134349b6f183729f2bde8193642adadd659571f"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Transport(netstandard1.3): DotNetty.Transport(netstandard1.3): 21 % XML-doc coverage (188/899)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/DotNetty.Transport.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"894850c4a138c2b3daff8b4779a4bbb7728c62227e057b8613d0be23f1206637"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs(netstandard1.3): DotNetty.Codecs(netstandard1.3): 9 % XML-doc coverage (44/498)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/DotNetty.Codecs.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bb5b9348662a05b4173510b20650dfc0e0a573b551221678e0040b3d6bdb821"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Handlers(netstandard1.3): DotNetty.Handlers(netstandard1.3): 18 % XML-doc coverage (37/200)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Handlers/DotNetty.Handlers.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e3e0a89a2a804a53021e9bf62ec412f140ad1c39f2c30fcc7ee1664c9f88697"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs.Mqtt(netstandard1.3): DotNetty.Codecs.Mqtt(netstandard1.3): 0 % XML-doc coverage (0/121)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Mqtt/DotNetty.Codecs.Mqtt.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"70cfb8395580635ea49a05d14b87ad81236043da099b53a02e10c8614f141da8"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs.Protobuf(netstandard1.3): DotNetty.Codecs.Protobuf(netstandard1.3): 0 % XML-doc coverage (0/5)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Protobuf/DotNetty.Codecs.Protobuf.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"df6322aa30fd6eee97f8d94fff7949390ace966e220d0278bc6b729479e196c0"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs.ProtocolBuffers(netstandard1.3): DotNetty.Codecs.ProtocolBuffers(netstandard1.3): 0 % XML-doc coverage (0/5)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.ProtocolBuffers/DotNetty.Codecs.ProtocolBuffers.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ce515baa8dd709288dc5589e5c637f8327868ee65ba8dae48bc66364c9ea45d"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs.Redis(netstandard1.3): DotNetty.Codecs.Redis(netstandard1.3): 2 % XML-doc coverage (2/133)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Redis/DotNetty.Codecs.Redis.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15bdcbc6107bcf0bcfe1e22f1f481afc413c243b4f54531df43a31dadf5e8a2a"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Discard.Client(netcoreapp2.0): Discard.Client(netcoreapp2.0): 0 % XML-doc coverage (0/4)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Discard.Client/Discard.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"355cd5411cdff8804977e29c91f4f73c9c12d55662053245b0115c57076a445c"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Examples.Common(netstandard1.3): Examples.Common(netstandard1.3): 0 % XML-doc coverage (0/14)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Examples.Common/Examples.Common.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4eddad39edba55d761f624fb6d115f0c20198f82fc57145545485712a142554e"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Discard.Server(netcoreapp2.0): Discard.Server(netcoreapp2.0): 0 % XML-doc coverage (0/3)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Discard.Server/Discard.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fea174fc94b4d43a89eb99dabf1c2241595edb4a7a90ca3286e1ce7e0cdd7437"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Echo.Client(netcoreapp2.0): Echo.Client(netcoreapp2.0): 0 % XML-doc coverage (0/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Echo.Client/Echo.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08bd3c71f7000719c36f70c49fdf69b428afb120ea0ee67adb18f3e1ceefb3d0"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Echo.Server(netcoreapp2.0): Echo.Server(netcoreapp2.0): 0 % XML-doc coverage (0/4)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Echo.Server/Echo.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac28163363594764938cb81b2d0039cbbf1caedae0a7f6147b6f6e57def55a09"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Factorial(netstandard1.3): Factorial(netstandard1.3): 0 % XML-doc coverage (0/2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Factorial/Factorial.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b474791df5cd8eb2b7ec74c15b14fcb95a51f7fda940b49e8a866f938aeceda"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Factorial.Client(netcoreapp2.0): Factorial.Client(netcoreapp2.0): 0 % XML-doc coverage (0/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Factorial.Client/Factorial.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f86e102fc7a304f3266e3821cee348c607ebe41da52e843ba9de3264a0192f8"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Factorial.Server(netcoreapp2.0): Factorial.Server(netcoreapp2.0): 0 % XML-doc coverage (0/4)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Factorial.Server/Factorial.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88fdf99c4fb964a2593403fb4a73ef31a61801c20b1bf841a6797f4527a72a54"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: QuoteOfTheMoment.Client(netcoreapp2.0): QuoteOfTheMoment.Client(netcoreapp2.0): 0 % XML-doc coverage (0/2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/QuoteOfTheMoment.Client/QuoteOfTheMoment.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4561776a68425936659c0844c0f7a8585e3375d7848cd5e2d8caa8266a342309"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: QuoteOfTheMoment.Server(netcoreapp2.0): QuoteOfTheMoment.Server(netcoreapp2.0): 0 % XML-doc coverage (0/3)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/QuoteOfTheMoment.Server/QuoteOfTheMoment.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"34814cad6f37b1c405777fa735fe68432ce30ea22f4a2705465a27d1f88e1dd3"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: SecureChat.Client(netcoreapp2.0): SecureChat.Client(netcoreapp2.0): 0 % XML-doc coverage (0/2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/SecureChat.Client/SecureChat.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"be9ed338c3a7734f57566923b51de2ca2bc9706b694accf779757ce97434d4b4"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: SecureChat.Server(netcoreapp2.0): SecureChat.Server(netcoreapp2.0): 0 % XML-doc coverage (0/7)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/SecureChat.Server/SecureChat.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7510df21836b33a4b9fbe31dc664d945664730ea7b7604308b4902c7d68d48ee"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Telnet.Client(netcoreapp2.0): Telnet.Client(netcoreapp2.0): 0 % XML-doc coverage (0/2)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Telnet.Client/Telnet.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0340d20045dd88730507f1fa5aecc518164bae7aa0cdd97407ce8274834e6989"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: Telnet.Server(netcoreapp2.0): Telnet.Server(netcoreapp2.0): 0 % XML-doc coverage (0/5)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Telnet.Server/Telnet.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d0e4a758e132483806a1405214c2610ca150d403114bf5cc2d81c2f9b30eeca"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Transport.Libuv(netstandard1.3): DotNetty.Transport.Libuv(netstandard1.3): 0 % XML-doc coverage (0/159)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport.Libuv/DotNetty.Transport.Libuv.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"29a767f1b82955762bbd030eda82f2a703c34479d5521ff144de2c8fb05c47a5"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: HttpServer(netcoreapp2.0): HttpServer(netcoreapp2.0): 0 % XML-doc coverage (0/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/HttpServer/HttpServer.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"618fd3f8097d7f0aa591df904c50df9a109204deca0e4018fd968bdbc24063bb"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: DotNetty.Codecs.Http(netstandard1.3): DotNetty.Codecs.Http(netstandard1.3): 6 % XML-doc coverage (80/1452)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs.Http/DotNetty.Codecs.Http.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d37f9284ed0059c4bf87f232ebf5ebac745f2a662e42a72cb083859804acc40"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: WebSockets.Server(netcoreapp2.0): WebSockets.Server(netcoreapp2.0): 0 % XML-doc coverage (0/4)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/WebSockets.Server/WebSockets.Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb8f1a411dd7a9729fb7e07754b586934b522d58e10d0977779c9b4ff23aa01"}},{"ruleId":"D19","level":"warning","message":{"text":"Low XML-doc coverage: WebSockets.Client(netcoreapp2.0): WebSockets.Client(netcoreapp2.0): 0 % XML-doc coverage (0/6)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/WebSockets.Client/WebSockets.Client.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa28ed18fd0e586c00e128cd666107f9d479995a1b92f47e74be03d75d83c832"}},{"ruleId":"D22","level":"warning","message":{"text":"Ambiguous lifecycle and cleanup operations. \u0027Remove\u0027 and \u0027Destroy\u0027 are used interchangeably or in parallel across FastThreadLocal and InternalThreadLocalMap, creating confusion about whether one is for cleanup and the other for removal.: Unify to a single \u0027Dispose\u0027 or \u0027Clear\u0027 pattern. Use \u0027Dispose\u0027 for full cleanup and \u0027Clear\u0027 for resetting state, removing the ambiguous \u0027Destroy\u0027/\u0027Remove\u0027 duality. (signatures: void FastThreadLocal.RemoveAll() | void FastThreadLocal.Destroy() | void InternalThreadLocalMap.Remove() | void InternalThreadLocalMap.Destroy())"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"adc7e9ecd4b9e8802d4c664b9a6b17c821e3622a416e1cca6a7b209e0fd6da7b"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for asynchronous scheduling. \u0027ScheduleAsync\u0027 is used, but the return type is \u0027Task\u0027 rather than \u0027Task\u003CT\u003E\u0027 or \u0027IScheduledTask\u0027, and the naming convention differs from \u0027SubmitAsync\u0027 used in AbstractExecutorService.: Standardize on \u0027SubmitAsync\u0027 for fire-and-forget or \u0027ScheduleAsync\u0027 for delayed tasks, but ensure return types are consistent (e.g., all return Task or all return IScheduledTask). (signatures: Task AbstractEventExecutor.ScheduleAsync(...) | Task AbstractEventExecutorGroup.ScheduleAsync(...) | Task AbstractScheduledEventExecutor.ScheduleAsync(...))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2aacd4890b74b2ae95d8e78bbdaf57f46b0d5427af11b47dd812930a68689e85"}},{"ruleId":"D22","level":"warning","message":{"text":"Inconsistent naming for queue insertion. \u0027TryEnqueue\u0027 and \u0027Offer\u0027 are used for similar operations, causing confusion about whether one is non-blocking and the other is blocking or vice versa.: Standardize on \u0027TryEnqueue\u0027 for all queue implementations to reflect the non-blocking, try-catch pattern common in .NET collections. (signatures: bool IQueue\u003CT\u003E.TryEnqueue(T item) | bool ILinkedQueue\u003CT\u003E.Offer(T e) | bool CompatibleConcurrentQueue\u003CT\u003E.TryEnqueue(T element))"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"949113fc70fec1352b6aa92dab6fe7ff8ade9402a932f37bd4009ef438e9a098"}},{"ruleId":"D23","level":"note","message":{"text":"Bounded contexts not declared: At 83k LoC across 85 projects the codebase is both large and multi-module, so its structure warrants explicit bounded-context boundaries. Declare architecture.contexts (\u22652) in config to assess cross-boundary type coupling."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1c7e276c9c682731f01819ed5378b90ca320cde1b583c90920172911598362b3"}},{"ruleId":"D24","level":"note","message":{"text":"redundant comment: \u0022COPYRIGHT (c) Microsoft. All rights reserved.\u0022 \u2014 ignore - repeated boilerplate, not explanatory"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"examples/Discard.Client/DiscardClientHandler.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"69a83b7cb617a806ab563f2adfab8996c8407dee845c5eafe9c3afb4d912cbd2"}},{"ruleId":"D26","level":"note","message":{"text":"Projects may be oversized for their cohesion: 1 of 43 project(s) overshoot their size bounds, lowering Project Cohesion to 9.5/10. The most over is \u0060DotNetty.Codecs.Http(netstandard1.3)\u0060 (18416 LoC, 146 public types across 7 namespaces). Review these for cohesion \u2014 split a project that spans unrelated responsibilities."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d5a94650dc74886a0f1f08eb9fb6775f1fc395279ef7e901c970c9d26f767a72"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"7cf85abffe732f2645ef95a624d6badc26f0263616284d6a4cc46ca8e983031d"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"b96b7173c4377d5bea4d6fd7b52323631c631c44172b743bec6f266c10a4e538"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"32dae4fbf7022723ef122bc37ca2ed250fc7301fb8349aaca2f99fdb89e09899"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"d162311ffa683042759027bff775b9b7a1e014394840b8fde0e4c0b98dafcc9e"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"3d2ff111f50e434df0bd669c233f0dc17ba14dae6c4742aa38b549bfdebc0e2a"}},{"ruleId":"D30","level":"error","message":{"text":"A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."},"partialFingerprints":{"codehealthFindingId/v1":"144ba3d64b2f88552ffc19d754e40bd2451972fd866ceb13b6e402c8039c1886"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: DefaultChannelPipeline.cs \u2194 EmbeddedEventLoop.cs: \u0060src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs\u0060 and \u0060src/DotNetty.Transport/Channels/Embedded/EmbeddedEventLoop.cs\u0060 change together 57% of the time (8 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/DefaultChannelPipeline.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"02364006f204883d02c1bfc4502ef6910c53c80ae777338210b31fb7260973a8"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: AbstractChannel.cs \u2194 AbstractChannelHandlerContext.cs: \u0060src/DotNetty.Transport/Channels/AbstractChannel.cs\u0060 and \u0060src/DotNetty.Transport/Channels/AbstractChannelHandlerContext.cs\u0060 change together 55% of the time (11 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Transport/Channels/AbstractChannel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed18c5a84bd6562d1d3a2205f8f83d94befde6126a62ff13f28be46aeb1ce649"}},{"ruleId":"D35","level":"warning","message":{"text":"Change coupling: AbstractByteBuffer.cs \u2194 EmptyByteBuffer.cs: \u0060src/DotNetty.Buffers/AbstractByteBuffer.cs\u0060 and \u0060src/DotNetty.Buffers/EmptyByteBuffer.cs\u0060 change together 50% of the time (13 shared commits) with no explicit dependency \u2014 a hidden/logical coupling. If they belong together, co-locate them; if not, break the coupling."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Buffers/AbstractByteBuffer.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2655e7bdb01851f16fed614242cf5529636e9acbba2d829bb70f64c97bb6aec"}},{"ruleId":"D39","level":"note","message":{"text":"IL efficiency: 25 authored method(s) exceed the IL budget: 25 of 7550 first-party methods compile to oversized IL bodies (\u003E 250 instructions); worst: DotNetty.Codecs.Compression.InfBlocks.Proc @ src/DotNetty.Codecs/Compression/InfBlocks.cs:163, 1770 IL instructions; large bodies don\u0027t JIT-inline, which pulled this dimension to 9.9/10; splitting the hottest bodies recovers the most."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/DotNetty.Codecs/Compression/InfBlocks.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"2117368363501ae3572af02ba91f5204002cbecbab1ab90fb3eba2f6f4e3a73d"}}],"taxonomies":[{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d","organization":"MITRE","informationUri":"https://cwe.mitre.org/","isComprehensive":false,"shortDescription":{"text":"The MITRE Common Weakness Enumeration (CWE)."},"taxa":[{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":6,"secretScannerRunsExcluded":0}},"redactionTokens":["A security finding was recorded here. Its details are withheld on the public artifact \u2014 ask the repository owner for the full report."]}]}