{"$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":"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"]},{"target":{"id":"A07:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"],"owasp":"A07:2025"}},{"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":"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"]},{"target":{"id":"A07:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"],"owasp":"A07:2025"}},{"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"]},{"target":{"id":"A05:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"],"owasp":"A05:2025"}},{"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":"AX10","name":"Code composition","shortDescription":{"text":"Code composition"},"helpUri":"https://codehealth.canine.dev/dimensions/AX10"},{"id":"AX3","name":"Project dependency cycles","shortDescription":{"text":"Project dependency cycles"},"helpUri":"https://codehealth.canine.dev/dimensions/AX3"},{"id":"AX4","name":"Dependency direction","shortDescription":{"text":"Dependency direction"},"helpUri":"https://codehealth.canine.dev/dimensions/AX4"},{"id":"AX9","name":"CQS / query purity","shortDescription":{"text":"CQS / query purity"},"helpUri":"https://codehealth.canine.dev/dimensions/AX9"},{"id":"AXB1","name":"Runtime evidence locked \u2014 no reproducible boot","shortDescription":{"text":"Runtime evidence locked \u2014 no reproducible boot"},"helpUri":"https://codehealth.canine.dev/dimensions/AXB1"},{"id":"ED1","name":"Handler temporal coupling","shortDescription":{"text":"Handler temporal coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/ED1"},{"id":"ED5","name":"Idempotency","shortDescription":{"text":"Idempotency"},"helpUri":"https://codehealth.canine.dev/dimensions/ED5"},{"id":"ES1","name":"Fold determinism","shortDescription":{"text":"Fold determinism"},"helpUri":"https://codehealth.canine.dev/dimensions/ES1"},{"id":"ES2","name":"Immutable events","shortDescription":{"text":"Immutable events"},"helpUri":"https://codehealth.canine.dev/dimensions/ES2"},{"id":"M1","name":"Documentation (README)","shortDescription":{"text":"Documentation (README)"},"helpUri":"https://codehealth.canine.dev/dimensions/M1"},{"id":"M2","name":"Architecture documentation","shortDescription":{"text":"Architecture documentation"},"helpUri":"https://codehealth.canine.dev/dimensions/M2"},{"id":"M3","name":"Folder \u0026 project structure","shortDescription":{"text":"Folder \u0026 project structure"},"helpUri":"https://codehealth.canine.dev/dimensions/M3"},{"id":"P1","name":"CI/CD gates","shortDescription":{"text":"CI/CD gates"},"helpUri":"https://codehealth.canine.dev/dimensions/P1"},{"id":"P10","name":"Library API \u0026 versioning","shortDescription":{"text":"Library API \u0026 versioning"},"helpUri":"https://codehealth.canine.dev/dimensions/P10"},{"id":"P3","name":"Security \u0026 performance tooling","shortDescription":{"text":"Security \u0026 performance tooling"},"helpUri":"https://codehealth.canine.dev/dimensions/P3"},{"id":"P6","name":"Release Hygiene","shortDescription":{"text":"Release Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/P6"},{"id":"P7","name":"Outbound HTTP resilience","shortDescription":{"text":"Outbound HTTP resilience"},"helpUri":"https://codehealth.canine.dev/dimensions/P7"},{"id":"R1","name":"Type Safety","shortDescription":{"text":"Type Safety"},"helpUri":"https://codehealth.canine.dev/dimensions/R1"},{"id":"R10","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/R10"},{"id":"R2","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/R2"},{"id":"R3","name":"Large Files","shortDescription":{"text":"Large Files"},"helpUri":"https://codehealth.canine.dev/dimensions/R3"},{"id":"R7","name":"Dead Code","shortDescription":{"text":"Dead Code"},"helpUri":"https://codehealth.canine.dev/dimensions/R7"},{"id":"R9","name":"Circular Imports","shortDescription":{"text":"Circular Imports"},"helpUri":"https://codehealth.canine.dev/dimensions/R9"},{"id":"X1","name":"Async correctness","shortDescription":{"text":"Async correctness"},"helpUri":"https://codehealth.canine.dev/dimensions/X1"},{"id":"X10","name":"Duplicated predicate","shortDescription":{"text":"Duplicated predicate"},"helpUri":"https://codehealth.canine.dev/dimensions/X10"},{"id":"X12","name":"Unreachable branch","shortDescription":{"text":"Unreachable branch"},"helpUri":"https://codehealth.canine.dev/dimensions/X12"},{"id":"X13","name":"Undrained process stream","shortDescription":{"text":"Undrained process stream"},"helpUri":"https://codehealth.canine.dev/dimensions/X13"},{"id":"X14","name":"Bypassable address classification","shortDescription":{"text":"Bypassable address classification"},"helpUri":"https://codehealth.canine.dev/dimensions/X14"},{"id":"X15","name":"Unvalidated length from an untrusted reader","shortDescription":{"text":"Unvalidated length from an untrusted reader"},"helpUri":"https://codehealth.canine.dev/dimensions/X15"},{"id":"X16","name":"Unfloored truncation loop","shortDescription":{"text":"Unfloored truncation loop"},"helpUri":"https://codehealth.canine.dev/dimensions/X16"},{"id":"X17","name":"Uncapped recursion over a caller-supplied document","shortDescription":{"text":"Uncapped recursion over a caller-supplied document"},"helpUri":"https://codehealth.canine.dev/dimensions/X17"},{"id":"X18","name":"Disposal-pattern correctness","shortDescription":{"text":"Disposal-pattern correctness"},"helpUri":"https://codehealth.canine.dev/dimensions/X18"},{"id":"X19","name":"Unrestored process-global state","shortDescription":{"text":"Unrestored process-global state"},"helpUri":"https://codehealth.canine.dev/dimensions/X19"},{"id":"X20","name":"Mistyped argument guard","shortDescription":{"text":"Mistyped argument guard"},"helpUri":"https://codehealth.canine.dev/dimensions/X20"},{"id":"X21","name":"Side-effecting pattern guard","shortDescription":{"text":"Side-effecting pattern guard"},"helpUri":"https://codehealth.canine.dev/dimensions/X21"},{"id":"X22","name":"Contradicted release guard","shortDescription":{"text":"Contradicted release guard"},"helpUri":"https://codehealth.canine.dev/dimensions/X22"},{"id":"X23","name":"Unguarded diagnostic materialisation","shortDescription":{"text":"Unguarded diagnostic materialisation"},"helpUri":"https://codehealth.canine.dev/dimensions/X23"},{"id":"X24","name":"Document value interpolated into markup unescaped","shortDescription":{"text":"Document value interpolated into markup unescaped"},"helpUri":"https://codehealth.canine.dev/dimensions/X24"},{"id":"X25","name":"Inert configuration knob","shortDescription":{"text":"Inert configuration knob"},"helpUri":"https://codehealth.canine.dev/dimensions/X25"},{"id":"X27","name":"Collection changed while being enumerated","shortDescription":{"text":"Collection changed while being enumerated"},"helpUri":"https://codehealth.canine.dev/dimensions/X27"},{"id":"X28","name":"Index access outside its own emptiness guard","shortDescription":{"text":"Index access outside its own emptiness guard"},"helpUri":"https://codehealth.canine.dev/dimensions/X28"},{"id":"X29","name":"Per-element action decided by a fixed element","shortDescription":{"text":"Per-element action decided by a fixed element"},"helpUri":"https://codehealth.canine.dev/dimensions/X29"},{"id":"X3","name":"Exception handling","shortDescription":{"text":"Exception handling"},"helpUri":"https://codehealth.canine.dev/dimensions/X3"},{"id":"X30","name":"Support guard that admits what it rejects","shortDescription":{"text":"Support guard that admits what it rejects"},"helpUri":"https://codehealth.canine.dev/dimensions/X30"},{"id":"X31","name":"Test-only surface in a production module","shortDescription":{"text":"Test-only surface in a production module"},"helpUri":"https://codehealth.canine.dev/dimensions/X31"},{"id":"X32","name":"Type resolved by simple name across every loaded assembly","shortDescription":{"text":"Type resolved by simple name across every loaded assembly"},"helpUri":"https://codehealth.canine.dev/dimensions/X32"},{"id":"X6","name":"Hand-rolled structured-format parsing","shortDescription":{"text":"Hand-rolled structured-format parsing"},"helpUri":"https://codehealth.canine.dev/dimensions/X6"},{"id":"X9","name":"Subsumed condition operand","shortDescription":{"text":"Subsumed condition operand"},"helpUri":"https://codehealth.canine.dev/dimensions/X9"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"esprima.scanPunctuator (cyclomatic 44): esprima.scanPunctuator has cyclomatic complexity 44 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":752}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac4798fedf6336b375862f70d796712fdf0f5cfc63268226d879039660c73396"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_db_updater.handle_call (cyclomatic 43): couch_db_updater.handle_call has cyclomatic complexity 43 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"18241e3097d51e7f05349bf4ae9c181c3be16b78a37a84771416c556fba8d006"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_httpd_db.db_req (cyclomatic 43): couch_httpd_db.db_req has cyclomatic complexity 43 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_db.erl"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed056ac45c643382002f39edb88e452f9e44460c1a9d61582d96eec8223b004c"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_file.handle_call (cyclomatic 33): couch_file.handle_call has cyclomatic complexity 33 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_file.erl"},"region":{"startLine":389}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7faf81ec5a535a3086d338ea3b07a39852eebc9a576bbeef1174378a385360d"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_httpd_view.validate_view_query (cyclomatic 32): couch_httpd_view.validate_view_query has cyclomatic complexity 32 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing. This is NOT this file\u0027s highest cyclomatic complexity: couch_httpd_view.parse_view_param (cyclomatic 34) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded function is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":399}}}],"partialFingerprints":{"codehealthFindingId/v1":"51d24ac73bd0e251db84f4e1ab718be525373c48269ce5ac642d0c64b8bd8d7d"}},{"ruleId":"D1","level":"warning","message":{"text":"mochiweb_request.get (cyclomatic 31): mochiweb_request.get has cyclomatic complexity 31 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_request.erl"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fdc30f07347f425ec02aff5f7ead39f63f8bbee51f39a2387d07e822c6873c8"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parseForStatement (cyclomatic 29): esprima.parseForStatement has cyclomatic complexity 29 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4301}}}],"partialFingerprints":{"codehealthFindingId/v1":"55fcff9be0fefa1b0d4785edfd8ea07182a6057aa5faa917a49349a1c1e86bba"}},{"ruleId":"D1","level":"warning","message":{"text":"mochijson.tokenize_number (cyclomatic 28): mochijson.tokenize_number has cyclomatic complexity 28 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson.erl"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a8fd9a3d98892a1dc543859a5e3706ddcdf0eb96eccb8d74b047ffad3799a5d"}},{"ruleId":"D1","level":"warning","message":{"text":"mochijson2.tokenize_number (cyclomatic 28): mochijson2.tokenize_number has cyclomatic complexity 28 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"3dc132b3ce08d4ab145ecc07bd0489d163a80210e5d37d85ac5ae0c943381f6a"}},{"ruleId":"D1","level":"warning","message":{"text":"processComment (cyclomatic 28): processComment has cyclomatic complexity 28 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1750}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f107a37e59051112223c9a283cd250373ef1b92f857dea1f06ddded2ca47b04"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.scanTemplate (cyclomatic 27): esprima.scanTemplate has cyclomatic complexity 27 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1156}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bf537f002039e8d020970df877f013c1b7816874526f5be41e1e6dfbac1b341"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_server.handle_call (cyclomatic 26): couch_server.handle_call has cyclomatic complexity 26 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server.erl"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bba74d53add05030a726f614815be46906aad7fbe0b524a7f7840c13a386aab"}},{"ruleId":"D1","level":"warning","message":{"text":"lhttpc_client.send_request (cyclomatic 26): lhttpc_client.send_request has cyclomatic complexity 26 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_client.erl"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e0ea4c15815869874d5b36258bee6d123841d5a57fb633b51e6fe9ee3209646"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parsePrimaryExpression (cyclomatic 26): esprima.parsePrimaryExpression has cyclomatic complexity 26 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3233}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fe6d017a8f06bf6ad42c8263ba1d4d2352374f9f5110c36f5e264ad3a70c6f4"}},{"ruleId":"D1","level":"warning","message":{"text":"file_sorter_2.options (cyclomatic 25): file_sorter_2.options has cyclomatic complexity 25 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file_sorter_2.erl"},"region":{"startLine":311}}}],"partialFingerprints":{"codehealthFindingId/v1":"0204cafdb05eaab5a1c71c2b4a41ea30225c743c8e23dfca85f5ce0b3da0e8c8"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.scanStringLiteral (cyclomatic 25): esprima.scanStringLiteral has cyclomatic complexity 25 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd0ed1beba5f430b8dbfb0cfaa5b45b6329b701ac694ac4f0556f0865beefcef"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parseStatement (cyclomatic 25): esprima.parseStatement has cyclomatic complexity 25 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4737}}}],"partialFingerprints":{"codehealthFindingId/v1":"178518e21bba56539f1189267a1b2082a2eeb72444c5b0058a2e25bc17b6532d"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_index_merger.do_query_index (cyclomatic 24): couch_index_merger.do_query_index has cyclomatic complexity 24 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"add870c641d6dc179f93358f56f7dd40d8721375aedaf7d69f879814c21ed0eb"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_config.handle_call (cyclomatic 23): couch_config.handle_call has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config.erl"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c8ca7d4691463def318ca08049abb916f03bbfbe71bfa1b9cc1b2829df83016"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_server_sup.start_server (cyclomatic 23): couch_server_sup.start_server has cyclomatic complexity 23 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server_sup.erl"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a05d9f3d3ed6d5050193863ecdb5625ae21a29cd2e23f33dc2d7bd079c01611"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parse (cyclomatic 23): esprima.parse has cyclomatic complexity 23 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5625}}}],"partialFingerprints":{"codehealthFindingId/v1":"70b9e6046a7126a2bbdbf8c7d09909a943ad2390c5fe5573674604c3477936d2"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_set_view_updater.wait_result_loop (cyclomatic 22): couch_set_view_updater.wait_result_loop has cyclomatic complexity 22 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater.erl"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"63338f5b267ac3df3819acfb14302ccdf16160443252e1c9a6da15dd91dba88e"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_db_updater.handle_info (cyclomatic 22): couch_db_updater.handle_info has cyclomatic complexity 22 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"f58cd71e15543b01c48057ab17a844181f3d2548ee38c046c9f40ddffc5ed0f6"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.scanNumericLiteral (cyclomatic 22): esprima.scanNumericLiteral has cyclomatic complexity 22 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":973}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbc97e2fa5e5c8dd6c65355710a725d6c5ac735ca97d80cf6acafaabb572bcc2"}},{"ruleId":"D1","level":"warning","message":{"text":"mochijson2.tokenize_string (cyclomatic 21): mochijson2.tokenize_string has cyclomatic complexity 21 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":478}}}],"partialFingerprints":{"codehealthFindingId/v1":"f264d07e4f2bacc86f9545141a1d94f437dce968805865159af4b1885414e551"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.advance (cyclomatic 21): esprima.advance has cyclomatic complexity 21 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1556}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a28de233eb71bd11c62983693d5104d0b0c35bee7d792382488535f364d8075"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parseClassBody (cyclomatic 21): esprima.parseClassBody has cyclomatic complexity 21 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5088}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a1e665d14de8992e978a46b388b098309090e3d8d055080b93d3ae31976ca7d"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_httpd.handle_request (cyclomatic 20): couch_httpd.handle_request has cyclomatic complexity 20 (threshold 15). To reduce it, separate the branches: extract each independent case into its own named function so the top-level body reads as a short sequence of named decisions."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd.erl"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"717ed88df190e5ade176d805a3ee25c801188caccbd55df6efbf593f9acf4ccb"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_btree.modify_kvnode (cyclomatic 19): couch_btree.modify_kvnode has cyclomatic complexity 19 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":614}}}],"partialFingerprints":{"codehealthFindingId/v1":"347f44fe987da52f2ee8d15e702b0984d5d6e287d8a9e7550ef24a5960f7bf51"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parseGroupExpression (cyclomatic 19): esprima.parseGroupExpression has cyclomatic complexity 19 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3130}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac6297a0e61e5770c63581018e4614e529879b7ca5da2f3c334fdc87df274d3c"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.parseUnaryExpression (cyclomatic 19): esprima.parseUnaryExpression has cyclomatic complexity 19 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3514}}}],"partialFingerprints":{"codehealthFindingId/v1":"881ffcbd18f1fbfbbc1289782fca88899bc02aa9aeceb64c360c5ed925912c12"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_set_view_updater_helper.update_btrees_wait_loop (cyclomatic 18): couch_set_view_updater_helper.update_btrees_wait_loop has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater_helper.erl"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"be2a841cb8b2553666e2b46e3941c243f0fe183256275c2633a932c707d93b38"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_view_group.handle_info (cyclomatic 18): couch_view_group.handle_info has cyclomatic complexity 18 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_group.erl"},"region":{"startLine":291}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9217cae20448220b49bcc3b25d41127978e33811d1e0841bc6fdd5a8c1fde67"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.unexpectedTokenError (cyclomatic 18): esprima.unexpectedTokenError has cyclomatic complexity 18 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":2470}}}],"partialFingerprints":{"codehealthFindingId/v1":"369011caebae42ba2db3fd9766286b81329321d7f2c47305e33c44c060b31da8"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_index_merger.run_http_index_folder (cyclomatic 17): couch_index_merger.run_http_index_folder has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"12e0218d9f034e35778da231381acd1364f81c76096d5cf51279e16902f9208b"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_config.parse_ini_file (cyclomatic 17): couch_config.parse_ini_file has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config.erl"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"f65b1cac4a44ebfe3d5ed1c7674b1df9a90fcd926c70c1e6a39ab11e5dc306f8"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_httpd_misc_handlers.handle_config_req (cyclomatic 17): couch_httpd_misc_handlers.handle_config_req has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_misc_handlers.erl"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"a05c5595509c3971e7a0a55ab4d851b3865f7d4ca5692e4a2f32acbc96828e32"}},{"ruleId":"D1","level":"warning","message":{"text":"mochifmt.parse_std_conversion (cyclomatic 17): mochifmt.parse_std_conversion has cyclomatic complexity 17 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochifmt.erl"},"region":{"startLine":365}}}],"partialFingerprints":{"codehealthFindingId/v1":"2534974004dc7047f02a5b839dd143fef9224d97e8d5751aa863b72513374a01"}},{"ruleId":"D1","level":"warning","message":{"text":"esprima.tokenize (cyclomatic 17): esprima.tokenize has cyclomatic complexity 17 (threshold 15). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: esprima.isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score. This file is where this pass\u0027s cyclomatic complexity CONCENTRATES: src/mapreduce/jsfunctions/esprima.js holds 14 of the 42 methods over the threshold \u2014 including the worst \u2014 and 126 of the 375 points over it (34%), 3.6\u00D7 the next-largest file (src/couchdb/src/couch_db_updater.erl at 35). No single row can show this, because each is measured only against the threshold: reducing this one file moves this dimension further than any other file in the repository."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5536}}}],"partialFingerprints":{"codehealthFindingId/v1":"315e51083ceb6a0990caab856b4302422fea8eb217a1fe04ba1707279eab70de"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_view_merger.simple_set_view_query (cyclomatic 16): couch_view_merger.simple_set_view_query has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":1200}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a2a09aff80502eb05314826907215563b477f9a2a3f1e2c705ff1b93b1aad71"}},{"ruleId":"D1","level":"warning","message":{"text":"couch_view_merger_queue.handle_cast (cyclomatic 16): couch_view_merger_queue.handle_cast has cyclomatic complexity 16 (threshold 15). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Where every arm is uniform \u2014 the same kind of value, with no behaviour of its own \u2014 a table keyed by the case is the shorter form; wherever the arms carry different data or different behaviour, keep them as cases, because collapsing those trades an explicit, reviewable set of cases for nothing."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger_queue.erl"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"720e844a8af19cbd6cb6b304459b64bca8d854cd6bc2a5712baa4d72157b9475"}},{"ruleId":"D1","level":"warning","message":{"text":"advanceSlash (cyclomatic 16): advanceSlash has cyclomatic complexity 16 (threshold 15). Of this number, 13 points are the body\u0027s own statements and 3 belong to one function item inside it that branches. This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This is NOT this file\u0027s highest cyclomatic complexity: isKeyword (cyclomatic 36) is higher and carries no row of its own \u2014 it was excluded as a flat dispatcher (a long switch/match over independent cases: many branches, almost no nesting), which this dimension does not treat as a refactor obligation. It is named here so the ranking you see in this file is not mistaken for the whole of it; the excluded method is counted neither in this dimension\u0027s figures nor in its score."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1517}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bf423ba1e5e526c3c7c9c1f412c161bd749ac407b5821f196b3280895b71321"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseClassBody (cognitive 61): esprima.parseClassBody has cognitive complexity 61 (threshold 15). Drivers by points: if/else 17 (53 pts), boolean chains 7, loops 1 (nesting depth added 36). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5088}}}],"partialFingerprints":{"codehealthFindingId/v1":"413a466b27c2c87f18d7a599c792db107e0f6079d1db60ea1afdb4f0578e9f31"}},{"ruleId":"D2","level":"warning","message":{"text":"parseForStatement (cognitive 59): parseForStatement has cognitive complexity 59 (threshold 15). Drivers by points: if/else 22 (43 pts), boolean chains 9, loops 1 (5 pts), ternaries 2 (nesting depth added 25). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4301}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c3bd0ae34fc7126912754a316199a424ad20a1e4ab0f28dd009cbf71da8de15"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanTemplate (cognitive 55): esprima.scanTemplate has cognitive complexity 55 (threshold 15). Drivers by points: if/else 20 (48 pts), match/switch 1 (4 pts), boolean chains 2, loops 1 (nesting depth added 31). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1156}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7366b588afb73c8020d7b7ba1cf13fce9f00f6e8ae26cecc8be737f150cf04"}},{"ruleId":"D2","level":"warning","message":{"text":"processComment (cognitive 47): processComment has cognitive complexity 47 (threshold 15). Drivers by points: if/else 17 (32 pts), loops 5 (10 pts), boolean chains 5 (nesting depth added 20). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1750}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6948b51e3ede98a160cb02d41b1f48ff93dc48f8bf8c82fb2fe227514568fae"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanStringLiteral (cognitive 41): esprima.scanStringLiteral has cognitive complexity 41 (threshold 15). Drivers by points: if/else 13 (32 pts), boolean chains 4, match/switch 1 (4 pts), loops 1 (nesting depth added 22). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"a328a424dc5f84f838ce6cbe27173474b1bd4c1570b4124963dc5de0abcab563"}},{"ruleId":"D2","level":"warning","message":{"text":"parseGroupExpression (cognitive 41): parseGroupExpression has cognitive complexity 41 (threshold 15). Drivers by points: if/else 14 (29 pts), loops 3 (9 pts), ternaries 1 (2 pts), boolean chains 1 (nesting depth added 22). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3130}}}],"partialFingerprints":{"codehealthFindingId/v1":"29605526ecb6277d07d8cf2ea22d5589c874a32465d760d2ddf1190e1fed7bfa"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanNumericLiteral (cognitive 40): esprima.scanNumericLiteral has cognitive complexity 40 (threshold 15). Drivers by points: if/else 13 (27 pts), loops 3 (7 pts), boolean chains 6 (nesting depth added 18). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":973}}}],"partialFingerprints":{"codehealthFindingId/v1":"71af3f3f8fc72ca1e94e1cae76c59e062693d45a15d54c8efbd20036f27a6c91"}},{"ruleId":"D2","level":"warning","message":{"text":"unexpectedTokenError (cognitive 35): unexpectedTokenError has cognitive complexity 35 (threshold 15). Drivers by points: ternaries 9 (20 pts), if/else 6 (12 pts), boolean chains 3 (nesting depth added 17). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":2470}}}],"partialFingerprints":{"codehealthFindingId/v1":"d00dac2fc740dd7f618cda0c0e355ec528e637617a98172578c749461a15763b"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parsePrimaryExpression (cognitive 34): esprima.parsePrimaryExpression has cognitive complexity 34 (threshold 15). Drivers by points: if/else 20 (28 pts), boolean chains 6 (nesting depth added 8). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3233}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c58dfbbf79285fd6cb1603cbab9a54c7bccf12634e45ccb6df33358bb3f9208"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_httpd_db.db_req (cognitive 33): couch_httpd_db.db_req has cognitive complexity 33 (threshold 15). Drivers by points: match/switch 19 (30 pts), error handling 1 (2 pts), loops 1 (nesting depth added 12). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_db.erl"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ceeea63c432519f4dc6a95a7e9d761da28af5fbc37456b357508f9d3d36f2ef"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_set_view_group.prepare_group (cognitive 31): couch_set_view_group.prepare_group has cognitive complexity 31 (threshold 15). Drivers by points: match/switch 9 (22 pts), error handling 2 (6 pts), boolean chains 2, if/else 1 (nesting depth added 17). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":1617}}}],"partialFingerprints":{"codehealthFindingId/v1":"42f3c341f151827d2dc01b59006834e292283fb3b85512f6b87cec8e305cd4d1"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanPunctuator (cognitive 28): esprima.scanPunctuator has cognitive complexity 28 (threshold 15). Drivers by points: if/else 11 (24 pts), boolean chains 3, match/switch 1 (nesting depth added 13). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":752}}}],"partialFingerprints":{"codehealthFindingId/v1":"4dadaf67f675d455deb5c2ff8ab06229d97d4f1bdc287c50ebabc7d76a7c51aa"}},{"ruleId":"D2","level":"warning","message":{"text":"parse (cognitive 28): parse has cognitive complexity 28 (threshold 15). Drivers by points: if/else 11 (17 pts), boolean chains 9, error handling 1, ternaries 1 (nesting depth added 6). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5625}}}],"partialFingerprints":{"codehealthFindingId/v1":"71ade1adfa0ccffe17c4b50f7868e5615d51a263106a1637d3e2e367732c6323"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.skipComment (cognitive 27): esprima.skipComment has cognitive complexity 27 (threshold 15). Drivers by points: if/else 14 (23 pts), boolean chains 3, loops 1 (nesting depth added 9). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":519}}}],"partialFingerprints":{"codehealthFindingId/v1":"b75aa128712d250e9077696602ca02553003edf97349d7615c5b6e49d17f78a7"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.getComplexIdentifier (cognitive 27): esprima.getComplexIdentifier has cognitive complexity 27 (threshold 15). Drivers by points: if/else 11 (24 pts), boolean chains 2, loops 1 (nesting depth added 13). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":633}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e114e510fd6a9d02a338d4d967771b4ace74e75a335b4cbdb35ab160813c022"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_server_sup.start_server (cognitive 26): couch_server_sup.start_server has cognitive complexity 26 (threshold 15). Drivers by points: match/switch 16 (20 pts), loops 4 (6 pts) (nesting depth added 6). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server_sup.erl"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0adcacef070fb4e236eb15e2bcba838f953bdd122a810b4a3d0b3b83e9a4526"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_compaction_daemon.maybe_compact_db (cognitive 24): couch_compaction_daemon.maybe_compact_db has cognitive complexity 24 (threshold 15). Drivers by points: match/switch 10 (23 pts), error handling 1 (nesting depth added 13). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_compaction_daemon.erl"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"526facec21c3fa7d53c64a681b10d9e8d76946fd40ff5eb41698ddb0eb82e214"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_db.open_db_file (cognitive 24): couch_db.open_db_file has cognitive complexity 24 (threshold 15). Drivers by points: match/switch 9 (17 pts), loops 2 (7 pts) (nesting depth added 13). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db.erl"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"6de4701ea2d38379991df9959a164ea8f1321918097ba9052ef63db1e9b5c45f"}},{"ruleId":"D2","level":"warning","message":{"text":"mochiweb_request.get (cognitive 24): mochiweb_request.get has cognitive complexity 24 (threshold 15). Drivers by points: match/switch 17 (22 pts), boolean chains 2 (nesting depth added 5). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_request.erl"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"6783c78c322b641c67ca8b3663125dfb9e9a31e0c4581179b4bb858ed052f81b"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_config.parse_ini_file (cognitive 23): couch_config.parse_ini_file has cognitive complexity 23 (threshold 15). Drivers by points: match/switch 12 (23 pts) (nesting depth added 11). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config.erl"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d7bc84f5d65591f7bd3eabd429638496539158f89f160ba20e2c07c5c4e4881"}},{"ruleId":"D2","level":"warning","message":{"text":"mochijson2.tokenize_number (cognitive 23): mochijson2.tokenize_number has cognitive complexity 23 (threshold 15). Drivers by points: match/switch 14, boolean chains 9. To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbbef030826315a8d714d35ac2c9f8418e958955a897f7094843f0ead2dc22fd"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseImportDeclaration (cognitive 23): esprima.parseImportDeclaration has cognitive complexity 23 (threshold 15). Drivers by points: if/else 12 (19 pts), ternaries 1 (3 pts), boolean chains 1 (nesting depth added 9). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5407}}}],"partialFingerprints":{"codehealthFindingId/v1":"9edd029f79fb69d95d2e28a18d55b2a5028bef5c6796da8272efbe12e23dacee"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.advance (cognitive 22): esprima.advance has cognitive complexity 22 (threshold 15). Drivers by points: if/else 12 (15 pts), boolean chains 7 (nesting depth added 3). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1556}}}],"partialFingerprints":{"codehealthFindingId/v1":"35b677bac7712f78833f92ed8954e5197e9f0e53891ebcbd2b00bb7767880583"}},{"ruleId":"D2","level":"warning","message":{"text":"reinterpretAsCoverFormalsList (cognitive 22): reinterpretAsCoverFormalsList has cognitive complexity 22 (threshold 15). Drivers by points: if/else 6 (13 pts), loops 2 (3 pts), match/switch 2 (3 pts), ternaries 1 (2 pts), boolean chains 1 (nesting depth added 10). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3750}}}],"partialFingerprints":{"codehealthFindingId/v1":"d18e8bfce2dbafa96a9d1672ba12042c308e0452570753923d78f36f67b39d2c"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_index_merger.do_query_index (cognitive 21): couch_index_merger.do_query_index has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 14 (21 pts) (nesting depth added 7). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"de46e901882d4353381dc42069bb82371cc2c5950a5ae9f2c7c9431f0ae372f2"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_view_merger.simple_set_view_query (cognitive 21): couch_view_merger.simple_set_view_query has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 14 (21 pts) (nesting depth added 7). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":1200}}}],"partialFingerprints":{"codehealthFindingId/v1":"c41bae6cc2b7ec0b598901bad87f9ae1f3b72ab13015a7bccec3568ce00f91e7"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_server.handle_call (cognitive 21): couch_server.handle_call has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 12 (20 pts), loops 1 (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server.erl"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a4fc356aa7f2ff05fbd11164c318e9f5304e652e94bc2d2a3c3271e76bb3977"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_view_group.prepare_group (cognitive 21): couch_view_group.prepare_group has cognitive complexity 21 (threshold 15). Drivers by points: match/switch 7 (13 pts), error handling 2 (7 pts), if/else 1 (nesting depth added 11). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_group.erl"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"749f29b5cdf61ff178772e5f389820b3d8718f881b88ff81b924f36887971304"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanRegExpFlags (cognitive 21): esprima.scanRegExpFlags has cognitive complexity 21 (threshold 15). Drivers by points: if/else 7 (14 pts), loops 2 (6 pts), boolean chains 1 (nesting depth added 11). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1379}}}],"partialFingerprints":{"codehealthFindingId/v1":"2bb6cbef882a58d7053a032d878cc6a55b0cbac0706248bc8dcd4daec0aea1ae"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseAssignmentExpression (cognitive 21): esprima.parseAssignmentExpression has cognitive complexity 21 (threshold 15). Drivers by points: if/else 10 (18 pts), boolean chains 3 (nesting depth added 8). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3882}}}],"partialFingerprints":{"codehealthFindingId/v1":"83ae63772c4da1850377dbc51a945667d945794ad76f56a001a0df5fb39b83d8"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_httpd_db.all_docs_view (cognitive 20): couch_httpd_db.all_docs_view has cognitive complexity 20 (threshold 15). Drivers by points: match/switch 11 (15 pts), if/else 3, error handling 1 (2 pts) (nesting depth added 5). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_db.erl"},"region":{"startLine":413}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f0b8f4dd8d5cd9ffeddd0ce95ef78075601b26fa801f5f67f261de719f0e4f3"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.collectToken (cognitive 20): esprima.collectToken has cognitive complexity 20 (threshold 15). Drivers by points: if/else 7 (16 pts), ternaries 1 (3 pts), boolean chains 1 (nesting depth added 11). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1624}}}],"partialFingerprints":{"codehealthFindingId/v1":"181e96fb13c2474c42574777cd095d7d4862303b28ed136810f4782b9f6c770a"}},{"ruleId":"D2","level":"warning","message":{"text":"parseFunctionExpression (cognitive 20): parseFunctionExpression has cognitive complexity 20 (threshold 15). Drivers by points: if/else 10 (15 pts), boolean chains 3, ternaries 1 (2 pts) (nesting depth added 6). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5030}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7b355134c0d41e5f3f4c487d7396b83a9d3a10c27300ddf023ba6cecfd579b6"}},{"ruleId":"D2","level":"warning","message":{"text":"tokenize (cognitive 20): tokenize has cognitive complexity 20 (threshold 15). Drivers by points: if/else 7 (9 pts), boolean chains 6, error handling 2 (3 pts), loops 1, ternaries 1 (nesting depth added 3). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5536}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b97abb921d09086a3f6b2358ef6257317cb12eaed105e8a145745fb8ee3089a"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_index_merger.run_http_index_folder (cognitive 19): couch_index_merger.run_http_index_folder has cognitive complexity 19 (threshold 15). Drivers by points: match/switch 6 (11 pts), error handling 3 (6 pts), boolean chains 2 (nesting depth added 8). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":620}}}],"partialFingerprints":{"codehealthFindingId/v1":"eebd763d9df65a07992fcc0beb68eb787be6e219a6bad6bb19a54d60299b93ea"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_view_merger.merge_reduce_min_row (cognitive 18): couch_view_merger.merge_reduce_min_row has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 8 (15 pts), error handling 1 (3 pts) (nesting depth added 9). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":371}}}],"partialFingerprints":{"codehealthFindingId/v1":"80ec008a73bc2d007c32bdf4f51cf76f1d93da836ebf3975aa0c704c0840c179"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_httpd.handle_request (cognitive 18): couch_httpd.handle_request has cognitive complexity 18 (threshold 15). Drivers by points: error handling 12, match/switch 5, loops 1. To reduce it, split the body into named stages: move each independent step or branch into its own named function so the body reads as a short sequence of named calls rather than one long body."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd.erl"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd3eb3a4f4eefd555922ce2c3e32bfd0f741890525ba8e4f25941f98ddf16496"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_httpd_misc_handlers.handle_config_req (cognitive 18): couch_httpd_misc_handlers.handle_config_req has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 12 (17 pts), loops 1 (nesting depth added 5). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_misc_handlers.erl"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c248c1bd33d01ed7ffc7187ff4c86f8afb4bb8891ae81f42819438f0d6d36f8"}},{"ruleId":"D2","level":"warning","message":{"text":"mochiweb_request.accepted_content_types (cognitive 18): mochiweb_request.accepted_content_types has cognitive complexity 18 (threshold 15). Drivers by points: match/switch 8 (14 pts), loops 2 (3 pts), boolean chains 1 (nesting depth added 7). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_request.erl"},"region":{"startLine":1105}}}],"partialFingerprints":{"codehealthFindingId/v1":"69d8c9d738b364ce8d878f72229f755bbd8a08f0b1f3f172192c907b27212787"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.skipMultiLineComment (cognitive 18): esprima.skipMultiLineComment has cognitive complexity 18 (threshold 15). Drivers by points: if/else 8 (16 pts), boolean chains 1, loops 1 (nesting depth added 8). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"d36b5899f9603163bfa2802cd65aacf8133ff5b2fec8d7aba61078b9bad5c34d"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.tryParseMethodDefinition (cognitive 18): esprima.tryParseMethodDefinition has cognitive complexity 18 (threshold 15). Drivers by points: if/else 8 (14 pts), boolean chains 4 (nesting depth added 6). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":2914}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fed39f0915fb7bf7dd185b99670de734d49043abdc06ca0c6b2aaf4bea812e4"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseFunctionSourceElements (cognitive 18): esprima.parseFunctionSourceElements has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 2, boolean chains 1 (nesting depth added 8). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This shape REPEATS in the file: one other method here (esprima.parseScriptBody) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4822}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa6e604960dd3614f9f89ec04f865c331bf2bb83c3b70bef79561128f7811401"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseFunctionDeclaration (cognitive 18): esprima.parseFunctionDeclaration has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10 (15 pts), boolean chains 3 (nesting depth added 5). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4973}}}],"partialFingerprints":{"codehealthFindingId/v1":"e562cec219f8e14e2c09b890c6de4ff58db8eaec9f42e2cf708bcbde8414b885"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseScriptBody (cognitive 18): esprima.parseScriptBody has cognitive complexity 18 (threshold 15). Drivers by points: if/else 7 (15 pts), loops 2, boolean chains 1 (nesting depth added 8). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages. This shape REPEATS in the file: one other method here (esprima.parseFunctionSourceElements) has the same decision points, in the same order, at the same nesting depths \u2014 so this is one pattern written twice rather than two separate problems. Splitting this body alone leaves the other exactly as it is. Where these are variations on one operation, the change that clears both is the shared one: lift the common shape into a single routine the variants call, parameterised by whatever genuinely differs between them, and keep in each method only the part that is not shared."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5460}}}],"partialFingerprints":{"codehealthFindingId/v1":"720d14458cc5f77ee321c62132ccbd43e3d8ff26c7513098f1cf4b8cfec675d4"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_set_view.make_handle_db_event_fun (cognitive 17): couch_set_view.make_handle_db_event_fun has cognitive complexity 17 (threshold 15). Drivers by points: match/switch 7 (9 pts), if/else 1 (4 pts), loops 1 (3 pts), boolean chains 1 (nesting depth added 7). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":1184}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a61abf83b90bd28ba03ff1991aebc8af610c9aad4bb1d3cb9455c5d48861511"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_config.handle_call (cognitive 17): couch_config.handle_call has cognitive complexity 17 (threshold 15). Drivers by points: match/switch 9, error handling 2 (5 pts), loops 2 (3 pts) (nesting depth added 4). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config.erl"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"8aa16246d2831a4a033c09a0f081ca11cacb3486378f75c54b03b3fe222572a0"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_db.check_is_member (cognitive 17): couch_db.check_is_member has cognitive complexity 17 (threshold 15). Drivers by points: match/switch 10 (16 pts), error handling 1 (nesting depth added 6). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db.erl"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"03187cf0b1b529dd51bf27a532f9901008173e5cf614c1dd070ba35eada8296b"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_db_updater.handle_call (cognitive 17): couch_db_updater.handle_call has cognitive complexity 17 (threshold 15). Drivers by points: match/switch 11 (14 pts), if/else 2, error handling 1 (nesting depth added 3). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f01b6152f63bb26c81541379f00d863f2d96c965fa574af9993669d7bd48f8c"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.scanRegExpBody (cognitive 17): esprima.scanRegExpBody has cognitive complexity 17 (threshold 15). Drivers by points: if/else 9 (16 pts), loops 1 (nesting depth added 7). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1332}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed877aadf59f07c9673383a6f1eb80ff20e108ca156c95df42667c01c9b01d45"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseUnaryExpression (cognitive 17): esprima.parseUnaryExpression has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8 (11 pts), boolean chains 6 (nesting depth added 3). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3514}}}],"partialFingerprints":{"codehealthFindingId/v1":"930b93cf6d80ea750c9f7f059f7c7ff14ccbd49fa38f50670c95edd3a9aaed9b"}},{"ruleId":"D2","level":"warning","message":{"text":"esprima.parseVariableIdentifier (cognitive 17): esprima.parseVariableIdentifier has cognitive complexity 17 (threshold 15). Drivers by points: if/else 8 (13 pts), boolean chains 4 (nesting depth added 5). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4017}}}],"partialFingerprints":{"codehealthFindingId/v1":"02c3d01e5e7a9ace79ff9f67c59adc7a5afa3435cba6423a41528ec4dbf5e653"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_btree.reduce_stream_kv_node2 (cognitive 16): couch_btree.reduce_stream_kv_node2 has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 7 (16 pts) (nesting depth added 9). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"b91c8c8ffe2bc213cd2bc373d66575f762ac139809ce94d69906ad83d2537865"}},{"ruleId":"D2","level":"warning","message":{"text":"couch_db_updater.handle_info (cognitive 16): couch_db_updater.handle_info has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 7 (9 pts), error handling 4 (6 pts), if/else 1 (nesting depth added 4). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":316}}}],"partialFingerprints":{"codehealthFindingId/v1":"37614627dfe8f1ab0087f33d00fe1ccb8fdd5ae1d4aef9be6200378e318a7a36"}},{"ruleId":"D2","level":"warning","message":{"text":"mochiweb_cookies.cookie (cognitive 16): mochiweb_cookies.cookie has cognitive complexity 16 (threshold 15). Drivers by points: match/switch 14 (16 pts) (nesting depth added 2). To reduce it, keep the dispatch but shrink the arms: move each non-trivial case body into its own named function (or onto the value being matched) so the dispatch reads one line per case, and group related cases into a sub-dispatch. Keep every case explicit, and make the behaviour for cases you do not list a deliberate choice rather than an accident."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_cookies.erl"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"59f0d964ce805923a323b4ecd7b475bf46220f68d40344c00e407cd08283b3b8"}},{"ruleId":"D2","level":"warning","message":{"text":"mochiweb_websocket.hixie_handshake (cognitive 16): mochiweb_websocket.hixie_handshake has cognitive complexity 16 (threshold 15). Drivers by points: if/else 6 (12 pts), loops 4 (nesting depth added 6). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_websocket.erl"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"599be3a520ec24ed05bce668e837953c0ba606dcdc508a0fce271e9118f93a83"}},{"ruleId":"D2","level":"warning","message":{"text":"parseLeftHandSideExpressionAllowCall (cognitive 16): parseLeftHandSideExpressionAllowCall has cognitive complexity 16 (threshold 15). Drivers by points: if/else 8 (10 pts), boolean chains 3, ternaries 1 (2 pts), loops 1 (nesting depth added 3). This file\u0027s own header attributes it to another copyright holder, so it is code this repository carries rather than code it wrote: restructuring the body in place forks it from upstream and turns every future re-sync into a manual merge. The performable moves are to leave the body as close to its upstream form as possible and keep it behind a narrow interface of your own, and to re-sync it when upstream changes \u2014 or, if it has already diverged far enough that you maintain it here, adopt it deliberately and then split the body into named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3399}}}],"partialFingerprints":{"codehealthFindingId/v1":"99c3ea181d82d21c6c16b82de6aee9b4e72005471b2a24259aefe7e2769b8c82"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_set_view_group.erl: FileTooLong \u2014 3720 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 93 functions. The bar is 500 significant lines; this is 3220 over it, 7.44\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"19e261156c02b871215ccefa84b09162f1cc82e96b1c77d8387101172e00f730"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: jsfunctions/esprima.js: FileTooLong \u2014 3715 significant lines (blank, comment-only and punctuation-only lines excluded; the length bar is tripled for a single-responsibility module of 4 or fewer top-level units). The bar is 1500 significant lines; this is 2215 over it, 2.48\u00D7 the bar. To reduce it, split the file along the responsibilities already in it: move each cohesive group of declarations into its own sibling file in the same module or package, so no one file has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbc4e142543629bcb6f16240c4798f764d55329417eda1bc3a3b0ea57640379e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_set_view_updater.erl: FileTooLong \u2014 1563 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 1063 over it, 3.13\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54beda6b42b1e285daf05335a326414d3c2c9fe646c913113d6003e94e92548f"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_dcp_client.erl: FileTooLong \u2014 1558 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 59 functions. The bar is 500 significant lines; this is 1058 over it, 3.12\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_client.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"809ce77f950a2f4d318bbba32c8b13dfd489ba9b69136968036ccc294e12b161"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/file_sorter_2.erl: FileTooLong \u2014 1411 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 126 functions. The bar is 500 significant lines; this is 911 over it, 2.82\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file_sorter_2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a510fe4f56486036207b6914e6b8413af69a02e3f7accf373eea452e9d71280c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_view_merger.erl: FileTooLong \u2014 1148 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 53 functions. The bar is 500 significant lines; this is 648 over it, 2.30\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef28e7e594920564bf86e6a4e53da4494e36c409c8317002d3a9d3d30c3fe71d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: couch_util: TooManyFunctions \u2014 62 functions. The bar is 30 functions; this is 32 over it, 2.07\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_util.erl"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"07852a8a608c3ad4d81187dafd4438f8e9a446e8552d5f75eca81d1383b2ef5b"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_set_view.erl: FileTooLong \u2014 975 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 52 functions. The bar is 500 significant lines; this is 475 over it, 1.95\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"22286eb70ee2427bc928c48e10a7c2cb46fe2c80dbb4c779622653db0a637c2d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_btree.erl: FileTooLong \u2014 911 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 73 functions. The bar is 500 significant lines; this is 411 over it, 1.82\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"584fcace9980829dec3c565c3bb45b9c6c0a10e58cc3658e5c8d8bb73bae3703"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_db_updater.erl: FileTooLong \u2014 879 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 43 functions. The bar is 500 significant lines; this is 379 over it, 1.76\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"556ab9dfa9652df480c34b27625aa4d7a970ffb8bd022378e624e9f27b612c0c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mochiweb_request.erl: FileTooLong \u2014 860 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 52 functions. The bar is 500 significant lines; this is 360 over it, 1.72\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_request.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a2b8484cce9a97b097ae3903b706652169395f1a4237872d3bef54e2667fbcb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_dcp_fake_server.erl: FileTooLong \u2014 849 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 44 functions. The bar is 500 significant lines; this is 349 over it, 1.70\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a3c2522d3ee932062ef8df6e981576eadb92b363eaea3c85c57c77b17033060"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: etap: TooManyFunctions \u2014 50 functions. The bar is 30 functions; this is 20 over it, 1.67\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/etap/etap.erl"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"442252211f10576e87c58c1f3ddb651b748875dc3e16f09befd638e36a66407d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mochiweb_multipart.erl: FileTooLong \u2014 833 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 333 over it, 1.67\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_multipart.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"17d5d40ad8eb09706d3538de6f124f1a1c7856db7f4b7016ce31fb87471cec7d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_replicator.erl: FileTooLong \u2014 800 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 36 functions. The bar is 500 significant lines; this is 300 over it, 1.60\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"67d437bb7e148b79125a489b54032886b6e687cdaa31a5330b50c3149f7da3ce"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mochiweb_util.erl: FileTooLong \u2014 793 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 58 functions. The bar is 500 significant lines; this is 293 over it, 1.59\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_util.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"666493b616ac6a2d9a98daaeef776b3270a9802641664345b62a177025e49409"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_httpd.erl: FileTooLong \u2014 785 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 86 functions. The bar is 500 significant lines; this is 285 over it, 1.57\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6578e70f7a51b626f95483f519a414019a81710a5cc9c55c8502b18a8669d40"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mochijson2.erl: FileTooLong \u2014 776 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 31 functions. The bar is 500 significant lines; this is 276 over it, 1.55\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a21cc486d799735eba526693453f034da277e19665eef82e1b207dc2c888452"}},{"ruleId":"D3","level":"warning","message":{"text":"FunctionTooLong: index.unused: FunctionTooLong \u2014 unused runs 146 significant lines (blank, comment-only and punctuation-only lines excluded) in one body. The bar is 100 significant lines; this is 46 over it, 1.46\u00D7 the bar. This is length, not branching: a long straight-line body scores low on complexity and is still read whole to change any part of it, so the complexity numbers beside this row neither confirm nor excuse it. To reduce it, extract each cohesive step of the body \u2014 the runs of statements that work on the same values and would earn the same name \u2014 into its own named unit, and have this one call them in order."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/unused/index.js"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"abaf9bc954807cbd7ed0387e71f9c2d52d3980e3a7abfd86a275832c7a42c14d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_set_view_util.erl: FileTooLong \u2014 726 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 55 functions. The bar is 500 significant lines; this is 226 over it, 1.45\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_util.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f0fcec823bc349de52170aa026f40239f6d85489b9a84c0dd5d09bdbbce1918"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_httpd_db.erl: FileTooLong \u2014 701 significant lines (blank, comment-only and punctuation-only lines excluded). The bar is 500 significant lines; this is 201 over it, 1.40\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_db.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"abe82190e1c02c25914cbe9e7429b27dc7af54588f214c16f83faefb5da27462"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_index_merger.erl: FileTooLong \u2014 682 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 34 functions. The bar is 500 significant lines; this is 182 over it, 1.36\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bab32ae2ecf4d09a4062616d311f873a5c0fd0be951bfc565deec8a6c120563"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_httpd_view.erl: FileTooLong \u2014 681 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 38 functions. The bar is 500 significant lines; this is 181 over it, 1.36\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d55ca3cfd3610dbc6a7b628b61747629b4c327e105321050faa7f533dbe4dd58"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mochiweb_html.erl: FileTooLong \u2014 676 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 59 functions. The bar is 500 significant lines; this is 176 over it, 1.35\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_html.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"342bd081c9c5ae9275a1401816952564e6323831ba7c77ab91702dc4aeadad8d"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: couch_view: TooManyFunctions \u2014 39 functions. The bar is 30 functions; this is 9 over it, 1.30\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view.erl"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd699e349e00dbe9a2636ec5f0b2d5a61f029c2c9c089012f9b7599c56bcc02"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/lhttpc_client.erl: FileTooLong \u2014 642 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 38 functions. The bar is 500 significant lines; this is 142 over it, 1.28\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_client.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c5097b3c2f45df9fa1d28edbe559702ac9ec11b65a89943b6e02cdad03ec248"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_file.erl: FileTooLong \u2014 629 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 61 functions. The bar is 500 significant lines; this is 129 over it, 1.26\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_file.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ed44846c5a7c300dbefd8113f2fa7a58de82cf18c9875f154040b4b27d24e56"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: couch_replication_manager: TooManyFunctions \u2014 37 functions. The bar is 30 functions; this is 7 over it, 1.23\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replication_manager.erl"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ab4a8d686ac7927228c6aa0cf0c430353de786737e4b070b9864be44a523ab4"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_db.erl: FileTooLong \u2014 592 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 73 functions. The bar is 500 significant lines; this is 92 over it, 1.18\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2b3dcc45280bce174176575ec62c47334db69353f668f25d8241d03eb461ac6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_view_group.erl: FileTooLong \u2014 586 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 34 functions. The bar is 500 significant lines; this is 86 over it, 1.17\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_group.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ea4cec585955d7f019cded59300898a0d3dc1168d9a93b853a984ecb6cf6a1f"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: mochifmt: TooManyFunctions \u2014 34 functions. The bar is 30 functions; this is 4 over it, 1.13\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochifmt.erl"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a66b5e10dfef68d92011fe1d7b49a72fdd9045da0269a5fc0d09ca9e6bb4b2a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyFunctions: couch_doc: TooManyFunctions \u2014 33 functions. The bar is 30 functions; this is 3 over it, 1.10\u00D7 the bar. The counted members are a module\u0027s functions \u2014 a module holds no instance state, so there is no shared data to group them by and no type to move them onto. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no single module carries every responsibility."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_doc.erl"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f8003402b26531436b98e74b0a86f16c2642452cbc46878f3b4fe9d9dc8dbd6"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/mapreduce_view.erl: FileTooLong \u2014 546 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 34 functions. The bar is 500 significant lines; this is 46 over it, 1.09\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/mapreduce_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"579ba45332edcde2a677af3199217b2091c6ba03d92b6f193a6d57799655809d"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_query_servers.erl: FileTooLong \u2014 522 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 49 functions. The bar is 500 significant lines; this is 22 over it, 1.04\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"296c2aa470b53df027bd85613a39a8b2879026808a14a9b5e5cd49aa98d0c552"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: src/couch_audit.erl: FileTooLong \u2014 517 significant lines (blank, comment-only and punctuation-only lines excluded), declaring 47 functions. The bar is 500 significant lines; this is 17 over it, 1.03\u00D7 the bar. In this language a module is exactly one source file, so its length cannot be moved into sibling files of the same module. To reduce it, extract each cohesive family of functions into a new module of its own and have this one delegate to it, so no one module has to be read whole to change one of them."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_audit/src/couch_audit.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f56392b9f3e89449b6b4c63f86ada924d26bc9b6ebe55882550a7c5f6c9cdeda"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2): src/couch_index_merger/src/couch_index_merger.erl:86-104 | src/couch_index_merger/src/couch_index_merger.erl:145-163 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4dfc35acb39f34ab5d1eff71295d9d371e37124f458310063b06205542a059c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16\u201317 lines \u00D7 2): src/couchdb/src/couch_btree.erl:617-632 | src/couchdb/src/couch_btree.erl:639-655 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":617}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dd22c7a5bd4a11978bf68188552c985be1d689b2cc8238328e20c5f2da0b704"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15\u201316 lines \u00D7 2): src/couch_set_view/src/couch_set_view.erl:1104-1118 | src/couchdb/src/couch_view.erl:440-455 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":1104}}}],"partialFingerprints":{"codehealthFindingId/v1":"9531d81df82ae424212258d0ed22b5bf3e838132eee2420d596a79092c5160b3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13\u201314 lines \u00D7 3): src/couch_set_view/src/couch_set_view_mapreduce.erl:234-247 | src/couchdb/src/couch_query_servers.erl:108-120 | src/couchdb/src/couch_view_mapreduce.erl:198-211 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_query_servers.erl\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 32 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"131fbdd8072f587c102b84df832a542c1591477148ab5e390539496bf7a8c995"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/couch_index_merger/src/couch_index_merger.erl:427-440 | src/couch_index_merger/src/couch_index_merger.erl:444-457 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":427}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e71475330af3c77eaeab960ad2a438abce83a583772b0c1df48b84310396361"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/couch_set_view/src/couch_set_view_group.erl:1950-1963 | src/couch_set_view/src/couch_set_view_group.erl:1968-1981 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":1950}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffe776dca55f66f7f24da39f5167112662d12c382eae743116a2b6362fffcb0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/couch_index_merger/src/couch_view_merger.erl:1319-1331 | src/couch_index_merger/src/couch_view_merger.erl:1348-1360 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":1319}}}],"partialFingerprints":{"codehealthFindingId/v1":"8186b38713f9328126c6291697822eeef8753db8ffac1ec9193e64f7de9d855d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/couch_set_view/src/couch_set_view_compactor.erl:445-457 | src/couch_set_view/src/couch_set_view_updater_helper.erl:225-237 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_compactor.erl\u0060 and \u0060src/couch_set_view/src/couch_set_view_updater_helper.erl\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 35 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_compactor.erl"},"region":{"startLine":445}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0068530961e31df8534b9be253b58b46d88d99511896774c0d02bcb5dd1ae1a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201313 lines \u00D7 2): src/mochiweb/src/mochiweb_html.erl:782-792 | src/mochiweb/src/mochiweb_html.erl:805-817 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_html.erl"},"region":{"startLine":782}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d5e554b2425eebffb25d59d64bf308b54ce6e25860b50a631f840489da8147e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201312 lines \u00D7 2): src/couch_set_view/src/couch_set_view_http.erl:301-311 | src/couchdb/src/couch_httpd_view.erl:514-525 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_http.erl"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"03458de7fb316ebb8690a338447f82ce7dc6bcf1d97ea60bf10ff4344b145c19"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11\u201312 lines \u00D7 2): src/couch_set_view/src/mapreduce_view.erl:218-229 | src/couchdb/src/couch_view_group.erl:607-617 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/mapreduce_view.erl"},"region":{"startLine":218}}}],"partialFingerprints":{"codehealthFindingId/v1":"804dc8c3ff0aab903e1df5d8cfca48b3830893bf72be1f1ef82f0ca5250315f0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/mochiweb/src/mochijson.erl:186-197 | src/mochiweb/src/mochijson.erl:209-220 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson.erl"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"854ac27e359d9467c3b31f2c00a7638d077f089b42f044d4d99814fa22e23ea0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/couch_dcp/src/couch_dcp_client.erl:1759-1769 | src/couch_dcp/src/couch_dcp_client.erl:1773-1783 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_client.erl"},"region":{"startLine":1759}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f0a4e3ef19e14ba00ae142ab671ed86f9d94a2d76be48c202bcc7cf0250ea07"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10\u201311 lines \u00D7 2): src/couchdb/src/couch_btree.erl:159-168 | src/couchdb/src/couch_btree.erl:171-181 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dd4d95521da0f7fa7a4a6624789dbe9bd034c49e56f4153abcac3ad0b7ad07d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:103-112 | src/couchdb/src/couch_view_mapreduce.erl:84-93 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"d682ae9e2779aac7fbefb7342a75583ed7407963028e3b15e6ef53a068700b56"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:139-148 | src/couchdb/src/couch_view_mapreduce.erl:115-124 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"a58a1db407f40e26d209727063ca168be83e31328d43d1bc8009fd3c64612141"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9\u201310 lines \u00D7 2): src/couchdb/src/couch_query_servers.erl:567-576 | src/couchdb/src/couch_query_servers.erl:585-593 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":567}}}],"partialFingerprints":{"codehealthFindingId/v1":"7a57148bc37c155dd3e00ea75f5d646bc956f39c7ba15e67cf4b06386d6bca79"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/couchdb/src/couch_view_mapreduce.erl:113-122 | src/couchdb/src/couch_view_mapreduce.erl:160-169 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_mapreduce.erl"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"df05be56965cbb2a27183c0b78241ea63f4e6d747a3c6313723c098df2fc0814"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/mochiweb/src/mochiweb_websocket.erl:53-62 | src/mochiweb/src/mochiweb_websocket.erl:95-104 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_websocket.erl"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"928e770e964f186639f929355fff7d8e976082e6f52ab3e533a84977892df108"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:215-223 | src/couchdb/src/couch_view_mapreduce.erl:179-187 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd6f78c30c09b3cc28028c03a08687fbb6053c47ddb9a015b53ad1e1381940a5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/couchdb/src/couch_changes.erl:402-410 | src/couchdb/src/couch_changes.erl:418-426 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_changes.erl"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e4be3f7c17b4a2cad090bd5b138b6364bc1e6a7dbe0ff1f82325940485a1141"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 2): src/couch_set_view/src/couch_set_view_updater.erl:1238-1244 | src/couch_set_view/src/couch_set_view_updater.erl:1346-1353 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater.erl"},"region":{"startLine":1238}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd25ceaba1b5b45aa2615099bf0617d85c6ceda506cfe4b5c2c26913d06e8780"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/couchdb/src/couch_query_servers.erl:206-213 | src/couchdb/src/couch_view_mapreduce.erl:258-265 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":206}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc09cb632c36feb429c1fd2d450d900f39e9555e5496700d90e26da8bdd1e8f1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/couchdb/src/file_sorter_2.erl:156-163 | src/couchdb/src/file_sorter_2.erl:210-217 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file_sorter_2.erl"},"region":{"startLine":156}}}],"partialFingerprints":{"codehealthFindingId/v1":"d11ee4252a2db41f7348d820a8a4d2d966b5dc1c809aaf322673f15c4a9da403"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7\u20138 lines \u00D7 2): src/couchdb/src/file_sorter_2.erl:880-886 | src/couchdb/src/file_sorter_2.erl:902-909 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file_sorter_2.erl"},"region":{"startLine":880}}}],"partialFingerprints":{"codehealthFindingId/v1":"043f10745e34c6ae12aef5ff282fb73ea73c9b0daa2f4d808a23d78fcad4a2d8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/couch_set_view/src/couch_set_view_group.erl:4030-4036 | src/couch_set_view/src/couch_set_view_util.erl:655-661 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":4030}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8fce2f9b38b3929086d9330c89360c8af39375229a20a91f7a6e979b0fb0fab"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/mochiweb/src/mochijson.erl:239-245 | src/mochiweb/src/mochijson2.erl:361-367 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson.erl"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"cee055b514e1ba75686f8d3179611599a7a2b9d187f48dacd46ac1eb923cf7b0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): src/mochiweb/src/mochiweb_request.erl:186-192 | src/mochiweb/src/mochiweb_request.erl:194-200 | src/mochiweb/src/mochiweb_request.erl:201-207 \u2014 all 3 copies are in the same file, so extract the block into one function there and call it from every one of those sites \u2014 resolving only two of them leaves the rest to drift apart the first time one is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_request.erl"},"region":{"startLine":186}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ab7f679fd5bb19076b7e0f3bcbbcecdad52bab8e6a360fd27d4603c0dcbdf3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/mochiweb/src/mochiweb_websocket.erl:256-262 | src/mochiweb/src/mochiweb_websocket.erl:270-276 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_websocket.erl"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"05774df1d0cf4d6309a6dbb101bbb73befa3976d2e216750f0d6c35c9d19bb9e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_set_view/src/couch_set_view.erl:728-733 | src/couchdb/src/couch_view.erl:224-229 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":728}}}],"partialFingerprints":{"codehealthFindingId/v1":"18e8304722b173f041097c237bc829e89e84ce2fda2b1f6ba64fe450fcdf6a78"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:132-137 | src/couchdb/src/couch_view_mapreduce.erl:108-113 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f781425319f9d314fb17b82941b19280a7a7d33eeaa76eeec6bf8e0033d25fe"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/couch_index_merger/src/couch_httpd_view_merger.erl:124-128 | src/couch_index_merger/src/couch_httpd_view_merger.erl:134-138 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_httpd_view_merger.erl"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"12d0e9e772de8736ed87810eae33e1f09f3fd150089858c0a251d77bd1130773"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:166-170 | src/couchdb/src/couch_view_mapreduce.erl:137-141 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b50fa0457a4159ca01ba5645a3dac747477836ab73dd20f4f08b53aa7492a3a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:192-196 | src/couchdb/src/couch_view_mapreduce.erl:156-160 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_view_mapreduce.erl\u0060 as WHOLE FILES: this scan already matched 8 separate duplicated blocks between them, totalling at least 65 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":192}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c376adeae5ce299f539959494f77c78ebaa13e85cd13bb4a997ee2146ef10a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/mochiweb/src/mochiweb_websocket.erl:251-255 | src/mochiweb/src/mochiweb_websocket.erl:259-263 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_websocket.erl"},"region":{"startLine":251}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fc327f33915bb218f5f6462b6d4c066fedc196c7a9b1d2a16084aea2ccaa3cb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/couch_index_merger/src/couch_index_merger.erl:345-353 | src/couchdb/src/couch_replicator_utils.erl:225-233 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":345}}}],"partialFingerprints":{"codehealthFindingId/v1":"602f2616a0f1580f05553965ee19038a13bed6bbff520348bf12b576ec7548e0"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/couch_set_view/src/couch_set_view_http.erl:435-444 | src/couchdb/src/couch_httpd_view.erl:761-770 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_http.erl"},"region":{"startLine":435}}}],"partialFingerprints":{"codehealthFindingId/v1":"f65e73c06378f6dea8e4f77cb0fa374207f268498c55393fb2507193f90ac2ed"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/mochiweb/src/mochihex.erl:50-55 | src/mochiweb/src/mochijson.erl:225-230 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochihex.erl"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"62989d68dc83cdf0398882127447dea9d8cca20d5d5b7e28ce67d5fb711578ce"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/mochiweb/src/mochiweb_cookies.erl:264-271 | src/mochiweb/src/mochiweb_headers.erl:275-282 \u2014 the copies sit in sibling files of one directory, so a shared home is within easy reach: extract the block into a single shared function the call sites can all reach \u2014 a file they already depend on, or a new one alongside them \u2014 and call it from both call sites, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_cookies.erl"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"465d7be7a4c0d891b79bfc7b738778274f5feba2bb614d3c7e25f85336d80a46"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_audit/src/couch_audit_sup.erl:30-35 | src/couch_index_merger/src/couch_index_sup.erl:33-38 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_audit/src/couch_audit_sup.erl"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0985993b32749107347c200ba2c4a437df5dc18d92349d850d0a620f522177d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/couch_set_view/src/couch_set_view_compactor.erl:349-360 | src/couch_set_view/src/couch_set_view_updater_helper.erl:293-304 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_compactor.erl\u0060 and \u0060src/couch_set_view/src/couch_set_view_updater_helper.erl\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 35 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_compactor.erl"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"79660b3499ae68e4b7f2027b366ef1182612e81b0f3a2ba03251c16bec7abb94"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/couch_set_view/src/couch_set_view_compactor.erl:387-396 | src/couch_set_view/src/couch_set_view_updater_helper.erl:151-160 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_compactor.erl\u0060 and \u0060src/couch_set_view/src/couch_set_view_updater_helper.erl\u0060 as WHOLE FILES: this scan already matched 3 separate duplicated blocks between them, totalling at least 35 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. If that is what happened, the fix is to keep one copy and have the other call it (or delete it), which resolves this row and its siblings together \u2014 extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_compactor.erl"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"f13c45c1ac7e213c11b2b8fea5c8d960c83ca77bc8f5e84fc625917e290c2d75"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/couch_set_view/src/mapreduce_view.erl:121-129 | src/couch_set_view/src/mapreduce_view.erl:406-414 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/mapreduce_view.erl"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"8771f3b44954a78ec56f0a537b7972686f5eeaa5cc254a92b9f0848fb1567c84"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/couchdb/src/couch_replication_manager.erl:62-68 | src/couchdb/src/couch_replication_manager.erl:88-95 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replication_manager.erl"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7ec8c4b312b3fc1ae7546a4f3ef7d40da0ba6f9ec37c8bcd7f1222ac5d1626a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 3): src/couch_view_parser/src/couch_view_parser.erl:34-40 | src/mapreduce/src/mapreduce.erl:34-40 | src/snappy/src/snappy.erl:24-30 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere all 3 call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made 3 times."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_view_parser/src/couch_view_parser.erl"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ad43160e461a96a77b5dbdfca12a718b68d8b241b13358045e924a2eac72c6a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/couchdb/src/couch_changes.erl:120-124 | src/couchdb/src/couch_changes.erl:187-191 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_changes.erl"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"51ee30f36257551b33cae906ecfdc2968a2c45e9fbc69bee380a77e45ad9aaf4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_set_view/src/couch_set_view_http.erl:330-335 | src/couchdb/src/couch_httpd_view.erl:555-560 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it somewhere both call sites can already reach \u2014 a location they all depend on today, or a new shared one if there is none \u2014 and call it from each site; until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_http.erl"},"region":{"startLine":330}}}],"partialFingerprints":{"codehealthFindingId/v1":"d07099c3dc7cffcc82c019794a86d7fa3c819fd8c3394f40ca926450e959a22b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): src/couch_set_view/src/couch_set_view_mapreduce.erl:226-231 | src/couchdb/src/couch_query_servers.erl:147-152 | src/couchdb/src/couch_view_mapreduce.erl:190-195 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_query_servers.erl\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 32 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":226}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8fb9ca26669f98dc4397c5d6cb8cbe284fd2a1d271876d6cfb0e5cff214a9e6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:253-258 | src/couchdb/src/couch_query_servers.erl:174-179 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_query_servers.erl\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 32 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":253}}}],"partialFingerprints":{"codehealthFindingId/v1":"1556269c898040fbce394ae67b2743bde9013356c576a6713fe8fe5d881c204a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/couch_set_view/src/couch_set_view_mapreduce.erl:262-267 | src/couchdb/src/couch_query_servers.erl:183-188 \u2014 before extracting anything, compare \u0060src/couch_set_view/src/couch_set_view_mapreduce.erl\u0060 and \u0060src/couchdb/src/couch_query_servers.erl\u0060 as WHOLE FILES: this scan already matched 4 separate duplicated blocks between them, totalling at least 32 lines, which is the signature of one file having been copied from the other rather than of a helper waiting to be extracted. The two sit in different directories, so one cannot simply be deleted in favour of the other while both are reached separately: hoist the shared part into a location both already depend on and have each file call it, and retire whichever file turns out to have no caller of its own left. Extracting one helper per block leaves the fork in place."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":262}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c09132caba2ce3aea617772dabffbfce6f6aaaf087bf2433b6e62f6319e2313"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/couchdb/src/couch_btree.erl:546-550 | src/couchdb/src/couch_btree.erl:559-563 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":546}}}],"partialFingerprints":{"codehealthFindingId/v1":"52141bb5c64029f1cfcadab1459d9cd5698dc3a3195dbc43f2b6c879f6d5aefa"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/mochiweb/src/mochiweb_html.erl:539-543 | src/mochiweb/src/mochiweb_html.erl:552-556 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_html.erl"},"region":{"startLine":539}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0f792b1e77e1452744ef82e7f669a0d2cfdaab85ab9b2e7c7b9f305fdb121d9"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: lhttpc: lhttpc: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and depended on by 1 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ee424d338abf89a5aac390ba334a2f1dc8b1eb07f2ab6b946d9858ef9e877f12"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: mochiweb: mochiweb: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and depended on by 1 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3803959edeceb2f7f0bbd770c0955b7b24f29498f1b1bd36e670036d4e13476a"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: oauth: oauth: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and depended on by 1 project(s), so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"50d56d2840f3c5b8081af3b5e674f1f6d05cf288b4c00752ba0ad3e959632e5c"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 4 significant file(s) lose their only recent owner: src/couch_set_view/src/couch_set_view_updater.erl, src/mochiweb/src/mochiweb_request.erl, src/couch_dcp/src/couch_dcp_consumer.erl, src/couch_dcp/include/couch_dcp.hrl. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f8b8c3bfe503df75fb4e3a1ed5f8e335339d8b7e4e0071ffa43fc0fcc29c5c79"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #2: If anonymized user #2 becomes unavailable, 3 significant file(s) lose their only recent owner: src/mochiweb/src/mochiweb_socket_server.erl, src/mochiweb/src/mochiweb_socket.erl, src/mochiweb/src/mochiweb_acceptor.erl. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"139eb3ec49131450d33948200d80c35e57ec1c8e381e2990ce80a9fd1da1c6de"}},{"ruleId":"D16","level":"note","message":{"text":"Further sole-owners (lower concentration): 1 other contributor(s) are each the sole owner of a small amount of code below the off-boarding threshold \u2014 folded into the bus-factor score and metrics (8 single-owned of 36 analysed files in total, counted over production source files of roughly 2,400 bytes or more, excluding vendored, generated, example/demo and scaffolding-template trees and test files identified by path convention, largest first; 36 of the 144 production source files in this repository met that bar). They are anonymized user #3 (1 file(s)) \u2014 spread or document their files in the same way, at lower priority than the named off-boarding risks above. The files folded here: src/couchdb/src/couch_config.erl."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: # TODO we can make real ddocs up there. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060# REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/view_server/query_server_spec.rb"},"region":{"startLine":589}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8aa2e2f01c210bdacaeee5f8c6b84933ef675369a459ae21477ef6f6a13afad"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: An ugly wrapper over the mktemp tool with open_port and sadness? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochitemp.erl"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6b5dfa6af13fe5c1ec664025429afc14f018835b911ae79d8d492765672a9ba"}},{"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: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb.erl"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d4051bd981b5626e661c1dc8361dc03b80bd71a47283460da6f75c178fc7e06"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: DOCUMENT THIS MODULE. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_multipart.erl"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b3f5bcc8043e64072baaf76f4d58b9b762168152380f2451703bf13d3c352d0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: Support chunked? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_multipart.erl"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"61e121be3c3d21a713359ee1ab926ca06d14a2331f31f450aab2581bf1f5cd86"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: Import this from elsewhere after attribute types refactor. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_session.erl"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5141efe37e725b320d3ba1242599e651e5f7612d655bee27b7e92805d2c9611"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: This return type is messy to express in the type system. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_session.erl"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"8371bbfd4c3208f9da5de68e85cbeb417d5655b41f273d15170b6fbd27830434"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: https://github.com/mochi/mochiweb/issues/58"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_socket_server.erl"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b0e5c5b1e8f0495cd8d50c69b1d9fd0d67b0d0057d11e7ddb534bd745576f33"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: %% XXX: \u0060recbuf\u0027 value which is passed to \u0060gen_tcp\u0027 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_socket_server.erl"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"e88a90b35de6e571f3879e1d9c866d3b5cd9f8965191718b399906ba20bf91ff"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: %% TODO: This is exactly as broken as Python\u0027s cgi module. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_util.erl"},"region":{"startLine":382}}}],"partialFingerprints":{"codehealthFindingId/v1":"3310475874716339a63e40fa00658d98ffd841554aacb3d80057762d3ac32797"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX This should be possible to do with the re module? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_lib.erl"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"142979066682efba92afbb916837cfff944570a708caf7c6f00e35d0d7f508d3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % todo base64 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_doc.erl"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"25622fcb2d19d498577040214cd3efac71a73768674c42c2a79838e1655dff3c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe deprecate startkey_docid \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":291}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ff3c434ab7bdb2260fce86832c742d6e101a434c0f89b9ae47bcaf8b9c61f03"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe deprecate endkey_docid \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":296}}}],"partialFingerprints":{"codehealthFindingId/v1":"638388bc9f0ac168c405e91a99d82bf662432e99cfac18889b0d14b9e6aa2f5b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe deprecate startkey \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"744dd2030bb84ed229cd64727db22a5785f321f4656c4b2fbb1153ee99dacf9e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe deprecate endkey \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":306}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9a1bbc7c4ff42a933282f269b6b40142871d9a022039bd0e0672877dd6fe365"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: truncate chopped first line \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_log.erl"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6db76089ba85658e891bcc0b35fbfc5307cab29c3912116cbd156bda9ba226f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: make streaming \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_log.erl"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6764f7a6a8f6ab1153369613b0d2c52c196dc97f74a27115367a185d808403e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % todo get rid of duplication \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":438}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac8d146c59b11394d9ca5a45d4ddfd868f8c5cabfa3f48c7bbbd7e263a7ed8e0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe add error reason to replication document \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replication_manager.erl"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d9ac6d493f5d4b2fd5fb1a9bd91a8f2e919de9eee187d5dd2b5a41f3ec0ae5d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: deprecate (use same history format, simplify code) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator.erl"},"region":{"startLine":768}}}],"partialFingerprints":{"codehealthFindingId/v1":"2893cc48062c794168d6d78fc87c2a7a01f18497c698875a5b6dfa727de78a05"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: we might be under an SSL socket server only, or both under \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator_utils.erl"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bb5bd589ea0a240d4209bb19b9f816d8da4f1438c1c8095d2950770f2733946"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe make both buffer max sizes configurable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator_worker.erl"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2dba03ee7387c656f43ab2acd9e194eed334d55e34ac76993988f5d4165fe78"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: once purge support is properly added, this needs to take into \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":1399}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa7bef3770cb0f4082c5e38d632fa1985d6d5b506ff1e56af1aeb57e5a691a43"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO 2014-08-08 Retry few times (Not applicable for localhost) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":4148}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fe20d656bf5d03c96ee992f3e6db2f6d8202b83bf078096d4a69fc407acbd2b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: likely, remove offset, won\u0027t make sense with passive partitions. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_http.erl"},"region":{"startLine":361}}}],"partialFingerprints":{"codehealthFindingId/v1":"93bbe94af0458b68fbbe2b77da440e534113cc762b901f2774f9426455ae6442"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2014-07-30: Currently the IndexedBitmap is always 0. This works \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_util.erl"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd2d54975b6af220757380c0f690ae8f4bac5be989d35742003f03d2cd541b1e"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2012-12-21: This should go into the mapreduce specific header file \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/include/couch_set_view.hrl"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"978868b27407c0ed0899f37d558cf27d272b4738647de3156b59503de8256f28"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2012-12-21: This should go into the spatial specific header file \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/include/couch_set_view.hrl"},"region":{"startLine":229}}}],"partialFingerprints":{"codehealthFindingId/v1":"af4cde51acb8bf4f8715c52e40f6f2ebf01166caf1d4b69b270d9fe79f48fa08"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2013-02-21: When is this bitmap set? It also needs to be \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/include/couch_set_view.hrl"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb5847e1ca94858cb16cf9d8e2b839c4927290b09e5ca12d98b5b1631751ba83"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: what about offset and update_seq? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"053403dc767c8add9747ea4e7c4ddd2cfdacbab9d9017bee698998006f0d6a0b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: maybe add etag like for regular views? How to \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":447}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ef77a8da2ff86969f5a8f8c080e49a342884c2c7655f992255a2b98ad45a174"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: make couch_view_parser build and run on Windows \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":635}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d7ea129286c2c0078653710e64e3c48eed0d37bd6325fa09a7157e9b09f05f0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: make couch_view_parser work with spatial views \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":636}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea9241a98c818fe3f225bb4a9521d8ba0bfcec75089d052d1352517c0b528b79"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO: try to simplify this module, taking into account efficient/practical \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger_queue.erl"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bb882a53dfa42ea2eddfba76a85b4905c7be9678180a452c5903b047f1f4593"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO vmx 2013-08-22: Bad match error handling \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_consumer.erl"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c99f02c3970e77aa3a058ebd2430b25fd877e70f7bb093d6fdef3a4a5c4de71"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2014-01-07: No metadata support for now. Make it so it breaks \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_consumer.erl"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"079e28d82bb0ceed8ebed99357b2f2375adfae6d83c8af3d1c1ee167875462f1"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx: 2014-01-24: Proper logging/error handling is missing \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":697}}}],"partialFingerprints":{"codehealthFindingId/v1":"990ca9108f94b2f74e64ca5721de40c19ec08b51b60ae789dc240025f8d2566e"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx: 2014-01-24: Proper logging/error handling is missing \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":874}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d4e8b514818dc20ea048099ac6117cac805700cb326bf5f44a1d804287f13bb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO vmx 2014-04-04: Make a rollback due to wrong SnapshotStart/End \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":715}}}],"partialFingerprints":{"codehealthFindingId/v1":"50efa0f101d085b041bc4944fba44793b0ccc37b40961ef030731a5342fc11d9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: % TODO sarath 2014-07-15: Fix get_stats API for single partition \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":1067}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b5563e95e993ca2105f847d39c525816578aa3c4361083569f49b432d4cc376"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2014-01-08: No metadata support for now \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8e21ac837ceea910cc593d4b5102903b663bc05d9b505454e6b5f0dc5b9ac9b"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2014-01-08: No metadata support for now \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":245}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bf8d4fd0d2e448defd0d80627660b8b4d2ac4acb6bfdd41d07c1f12635eeab8"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2014-01-08: No metadata support for now \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":271}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc2fb68e251e2315a22a0a37d6b724b9c3ee56f9e7347b988811001be99ec4e8"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2013-09-11: For now we return only success \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":395}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e12e164f1b30a87e3ae1ebe51bb091e673e82e417b9ecc761bc8d4ddc9e17a9"}},{"ruleId":"D17","level":"warning","message":{"text":"XxxComment: % XXX vmx 2013-08-19: Still only 80% sure that ExtraLength has the correct \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060% REF: #123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee765a81fd78680cfe70747965b99d8875c31ff58012978342769777acbd6c5c"}},{"ruleId":"D28","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":"cfd8b369e3b6e191683b98408966a7429134690e240aa361ca27795a29b4e009"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"2b9a3ebf0202d3eb94188b06d7279e9e056264f31667dd1eff8a83d49bf4b9e4"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"8cf6f836788843759f1651be98cf5857bd100332e4a072ab4b5ebf68c839d1b5"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"445f7f965a191ad46046aa7a9c06d8a09ad54e44c3c326b902d8e7e37316d3f8"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"cfb27c43fa4325bf161f7f130e876f0c25b2ab09ebda0b58bbfb0c426e88b95d"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"e1690599f7ee2b9847afa5bfb41bddbdcafd1bdca43f7252d2a7386ae3e4763f"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"1acbe4e74372a5b4b3be562c2a8431340de1de47f888ec93119d9b7edec904f0"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"481e285815e949425f3725b516bbdcd4aacbf3674adbcb57e47246eb0c6db857"},"properties":{"commitSha":"431e8d12ae29475f73023af36f9e449e18000a94"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"f5cddb74bbd9d4565bb8f4cdf19ea0f3a93668c78a632d24b99b8f7d67dd5418"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"5575932685403c12a9676c91544c515fef1429f2b8793f0d4dcf80f854851f31"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"ab83ddcebdfef1f9cd2a9fc2792cf6c0ecab231b38ebefefc07215fbfdf61243"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"c37a4e2ac636b220de238196e9a78c7dd59c082c52636c4562eb2f7e66fb654d"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"8d32f3ab0f55d1a798fea5996e1aa417e95600feb769316415d731b59c45b912"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"010cd6ad3e86e242525ae5b1c301f6b43a6b4f8f483e2389f674b60bc4181e29"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"072cbe22a379e88d932f089757f3ee5ce21a1f878e27762bef3a1eceb604a7db"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","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":"1290bd6526ef61d0d628553f4a558d34393317e4d3d93928cef441436dbb53ad"},"properties":{"commitSha":"9c24e77b20dd04d6476db58b4fe83b7a8f61c0c8"},"taxa":[{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-540","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A01:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D28","level":"note","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":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D29","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":"988d6643408282705d61433b247e83356981a3faf6fa512ebebb5f955d7e4795"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"65edffbc422ce2217fb4efd9513542c0a65d9a1e11e299f74d603f1aafd93af8"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"c1c434abb587c77daab9e8d9180a0e360e147fa6c3b20ae443761d96b382c5ef"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"09af626a94682c5a5080d8a26c6573acac19fa8bde34219f55f0e946819d40b4"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"f449ef7b47829d8a29d3320c5f5bfe24d00f0ca659ec3db490bd45bd1625d092"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"5334b40847017ba1f75d88a62d5c83d6f77849737a32a96ed219d7e71288bf82"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"adbdea9ab660d9a12dc0a805a5e8cc337a8947cbc0d5c8cd87377cf6033f6100"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"a093173c6dde1011f32c222c78de2d7f70dc4de7ef9fe2068868f4887d05c841"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"08c1a8eda5e1ec2ab7b8f4184257f8e73ce35a9513ed07b4d4f44754dbbc7fd8"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"258e8ada8fd8ed255a93ea2701e2550893f26065b0371c6bb20675e51cf75ba5"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"f7582b1dc5798cacff8a3dba58b7f4a8e2f5ec71aef02fb118735a71902da3c8"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"6df77551d4a12f16da8f6b74ac4a8588f010117986ad18a7d5abb6b88e9c31ab"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"d9bbc45e42daa15c2b817da326251535f3f7d92fcd671a9b60a887ef2a3b1086"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"80c740a39751af12022e28103c3bf67c78b845ddb63b13de6c534a003d655b64"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"b9778b87da2df481c95ccf9e38e906d2c022c37b888303d8d3d3f82be936dd50"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"c93461b61329860ab98d0ea4ba048cd2be63e25c20de17d9e5843f013f1ab5e0"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","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":"56f9cbba4657300ffe462d749df83a907a98baf3ef968fa47faf9388b6ccc1f9"},"taxa":[{"id":"CWE-676","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A06:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","level":"warning","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":"098f4a1a40bb8f254cbff8041aefaa0f2f88105e15836cb1c1e8c874b27c8625"},"taxa":[{"id":"CWE-1333","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A02:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D29","level":"warning","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":"4e8d883dd0a7ac9e89e1f907496aa7a9afbcc36ffeb340c6fe6645f2dae83db8"},"taxa":[{"id":"CWE-1333","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"A02:2025","toolComponent":{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61"}}]},{"ruleId":"D34","level":"note","message":{"text":"Concentrated knowledge decay: 93 of 109 significant files have no living knowledge, while the repository is still being changed at a low rate (2 commit(s) in the last 90 days) \u2014 so this is one repo-wide knowledge-decay state, not 93 separate risks. Counted over 109 of the 144 production source files in this repository: the rest are under the ~2,400-byte size floor this dimension measures over. The code moved on without the people who understood these files: document them or schedule a read-through before the next change lands in them."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"008bd8d3156a7f5206da709f59f1f87af76671c6b9becea72c8c9cffbcbd4f8e"}},{"ruleId":"D34","level":"note","message":{"text":"Most significant orphaned file: One of the orphaned files carrying the most lost knowledge \u2014 ranked by size weighted by the file\u0027s role in the codebase, the same weighting behind the score above, so core code outranks equally large plumbing. A reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_group.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"129523dae3367400c606c30f3aa60f2d273e49b6742061bd396a1e51abc130a4"}},{"ruleId":"D34","level":"note","message":{"text":"Most significant orphaned file: One of the orphaned files carrying the most lost knowledge \u2014 ranked by size weighted by the file\u0027s role in the codebase, the same weighting behind the score above, so core code outranks equally large plumbing. A reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_charref.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9314f25cc60b5cebdfeca321c24c8bae9f999bf79576d73440eefa795b1e125a"}},{"ruleId":"D34","level":"note","message":{"text":"Most significant orphaned file: One of the orphaned files carrying the most lost knowledge \u2014 ranked by size weighted by the file\u0027s role in the codebase, the same weighting behind the score above, so core code outranks equally large plumbing. A reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file_sorter_2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ceed4020f566e06f87f43a273cdbeada8f69dd51ae12ccaf9d16d9ca7d2a977c"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8889c787814b4e225bc4564e105c7cfb8d98d6b7f98358c6ab37d42bb4268031"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d60e352603d379ef68448a75af14e1ebc5106e658a481c797cb26fe231d03337"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d49530ad1902fce92d9bb6f68a914611d463c3f16d162d4ae5b6ca808cff3169"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_client.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"11b6c4e375e516037480d700f64c0db59c84a5a4d94d7e6daa759e870373f435"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"46bed63c3aa37828961c748e4f02b7f610f5916bcea0cc25a23acbfd3fa22c0a"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_updater.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bb70ab6773d74999ff77b39ef1a50eca2b4f061d262525ac38b726f32ccde8d"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bf09b2d1185e0f65085e572106e0590759dc4d699314669e250c1b1de84bda6"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_util.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"57e97db4c73e8866dc323a88821599f37d8a59462223408a665ae960cec1641c"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08dfa049a45ef504bf9e1680990493741308009a585d24b2442f431976077212"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6678064d09a761326833033efe3c3ccba13a11dd7986c34b10c475d29bb35d2d"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_multipart.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"37d0fcbe32f17821452da5e84cd3002e664f62cde0a38cdf92869b995a8258cb"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"46b2e59148de6ea37d42505f1ed920987cd983604a56d5a59a869b91682a0a41"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"30e257673fdf0f94ff6a87487d21b62dc13a023be209d46aca13112a76f65e74"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_html.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"56011e5083ba231f3f659621b7868e19773144dafde994979d8c4b030d01df0a"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_util.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"44224837ce3be7fbdbc42ce0ecefa10253a77292350ee52c554663eaa93eb1fb"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_file.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e7a3708080775b23f0e75a8f17b2296a0e596e4c03a500d47bf9b9238d996f9d"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"edcff9c37a38b57719ddc3a911a451c2c154af504deb8c1087d1439f8d4381e4"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_group.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b20b0cbf4ff8b25987142581ceb66db63ad590c864bd2fec04daea38f260a3f7"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2f25388904ed0adf8b11cf8ed179fccf2e5a887a47bfdb80f94766e42980098"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/mapreduce_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b57257f8120aaeda39b30b1e796a0ae308e31eb6f017ab33426deceeb495776"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_manager.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd159b442b089a84b348ef887621d6440abc689ca76413d1570a2371689ae65b"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_producer.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"452c262178f81f8864ac1bf1b3b9518b61a9cecaed379de99cef17312476b50b"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c744a724a8f83f8819ecbbee75c5a2a2499ab83e63bb1e8938872cd63ad6a76e"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"31956ccae6871f00c158988deabd4e33b10dbb8d7fff8cb82cd68edbd8cc2e7f"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replication_manager.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3cc6f7864df219c992f2c75ed1c7b21fdeb947a817a9c851b1f293371a8e198"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/etap/etap.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9134adfd55522b5539e241723be2b3e6bf3069bc704842fab08b8b91f44c52a0"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_http.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dab8df7b96499f8e570168cc7e548bb13406005a4fea504d5f66f7b7e8cdbf9"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_lib.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c48adaf49ed3c29772a5fa91a3807ee65330622fda677d1f88fd031db06320b"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_compactor.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"de4ab5eaa4e2ea9c14391f0bdf8acdaf9187129ac8a768747b84640b29777fda"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"948ea2b01b35ea9d40a59121184d1ff9e25941efb8300ae768f799947040f6d2"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_headers.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"86c5cb6a93216ed7425856de4fffc442f8d9fef8a7e7d58ca022953def6bc98a"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochifmt.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"052a303f6a2c6772f260e58251c7a0dcac7aa5fa2bafc93b76bce09cb27020eb"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_changes.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e7553b2070e654a8ed4786de0a0d5abbf91380ccff59b46068b5139617d413e"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_compaction_daemon.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"58cf06981878fe218618e43fc43d583d80d2016c598dd0201f65480c19a9e59e"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator_utils.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"43b7b2a329ab8de2db8439d866a176fdd4ec71476bd6b500c77003c4e2c9c796"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_mapreduce.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54a2069b4510f09c4416c2b96736544911505afe0e7f9e56399645a01df84617"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/json_stream_parse.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa3430710b74f07b3b228bf450e26a880b7e53cc12e05938417ba6dc1e3f6b6"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/include/couch_set_view.hrl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"04bd0ba63cfad15027f8c2ee8f0d7a8429a637c531851198fdbb8eea7d7b1e61"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_replicator_worker.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"16331c07a3179bb0bf2ab439fa57ccb3084b837a0ec91bd93284aa2c9c0e4e93"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_cookies.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdcfeb73ca4fcb15b5833c44c90a18e1c8913458f278b44a3eef0d84727eea58"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiutf8.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd6beea19cdda9620678a67f3c80d443f0fef7c028064f07156daaa9ab95b802"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_http.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"313b823ee0de9b4847ec54be0a645a493f779b11bf5a5b09b3b208317abcfd3d"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater_helper.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5b923792a8039b01a3d539ab078b996a5796c308c105bacf5e99e91e60d9b24"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_mime.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f661b4e5080f626af35bea32b8d7b701da0a4e9e0484a992129fc77d96912e5"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochinum.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e956321a688a37c73027dc645a3aa578399dcbbd11e4dbacfa4eef439fc20051"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"87c07747a9d5fd10a918b0994b7964a8be433622372b608ac0867c7db9768ba5"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_updater.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"91014212606944231de81e5e4220298f6bca8afe9e7103f8a67fbb4677471070"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_btree_copy.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b04a8ad4df53c2a7400b7f522c16867a5d9d659014b7741f0cd36186f64137d"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_doc.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"81b48b254ca7b22ed72ca500e2269bdf920209d8b9ef850fe89b74c79f5b6908"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b72c68ca051dbf734f0cc1c2e3c64ddba5cd666314c7aa00fe910bdb592a908"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_misc_handlers.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e92a8e4257e2032e09175d3ff5df14f0a4c54fcd8d7f172e67994b8a0bf8838"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_mapreduce.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea9e6b1e6738318e3ace2ee24a2c927d532bab1e565b87863426d064fdd058d8"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/include/couch_js_functions.hrl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"717114c6e037f7e34f34ef16bf8eea1102378c74f17554edd784cfa7158370a4"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_session.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c88bcdd1e4210e8180f58f780ff27b3c8eba3c8c43b3a1679dc5bf5565d3b2b0"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochitemp.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f6d005b69b099502f8b93842f160df3e3b516fe9374694ba8d8417e974575ef"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_httpd_view_merger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4496fbb6162c1c4e5ca048af13a3549fa0e112ff932bf66183a695fc2e91775"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_os_process.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9255c0bd00f03c8d584b3f999b4e6a1528b6b12f82214a3cf33bac65ab1d268e"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_sock.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6973418b98a46c595f16640293f40b48e934429de9cea3e7ab98cfb5fbdcd161"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_view_merger_queue.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"191e4c037590ae1a2659d2299b1423c4bbbfef15940bc4b8021c071174068af4"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/couch_db.hrl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"af4efd9c69c8183e26436c42d9dd260080a191340e69eccb9d678c3b0749d24a"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/reloader.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"47011ed302584b298315dc8123893ecb8cde5c39957763ff42002ff7d9c7d773"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_index_merger_validation.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ce6b548a5bdd73df12ab292ad2b44140f7332be2cc7a7e58f1f197e7d662312"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_httpd_external.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9370087f3998875177ec163c5677b0c95ac357c6d217e3fb6bae0f1ea6c10f2f"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_index_barrier.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ed3e95993fb15df62c8f4ee1be4aa398771c2140cf6ec7ed18db9ceac5620e3"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view_compactor.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7dc7e3b49e8690312798bf57b6b879e77c0012674da65ab7cbdd2fb1292ae192"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server_sup.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcee52190e6ff44b42ac071df1e2e409c26a30a0487ce40b44d59c54efe83392"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_work_queue.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c75ad1b7ceaa1b4e38d9ff467193fe48e3e1be7f45f1fc8332af8696d93de2f8"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochilogfile2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"acff384456e9e6fb7649fbf006767a50c2254676f2c9b69e246beb17f0606f72"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_task_status.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ef4bfea5d20da4f21bd266d88a901f66aaeba0b0ce63f2ff23c5caa5481a98a"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_file_write_guard.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c883810e970334d68f49bdc5098c058c3c6a9302d6256d2b245634569a48ce75"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_query_logger.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc36918ce8beb8d93b407a85f4c8c3dea0d3317938620a00e2b73f45dbea5f39"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/ejson/src/ejson.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7422412d5161284b1291f7840c1a9bd9fae44928ee697b2f07e6f42c1840638c"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_http_view_streamer.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c48b57fda249e209a5d41796ab864e9dd149f1a1d7196d9757e98a70e994c8c5"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_base64url.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e1b224abd6c1e59e00998effd08a631d84fe119052b673b97bace23f86eb5fe"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/include/lhttpc_types.hrl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfa6c09eb9f9a3636aafbb072648633396a7418abe7fda93086d7cd70101918c"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_db_frontend.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"baa6bdb94a3522ff4f9dab6591e65d83af619fe860a209372ee6053961beddc7"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiglobal.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fae28067180bdf1fe442cb6b649350af3d3af66b4446f9301a7bb817c16cf6e"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochilists.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c4fb70bebecdafaaab0b8abecbfa9202af49147809bab92ffed987fb4b92fcf"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file2.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"118fdafc1758cdc0cda38a0a32e702d0ecddee7d45175c319eab5ad7c7244cc6"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"95f436de5edb2f2081784c11dcab83ae35902de0d02eb142094749bba7ce34fe"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_response.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b35763bfd35cd97862fb02e4f2cbdae44021662d8c74192b7a8b6789a5a92ad"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_config_writer.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cd12e6bc071c832a12ccae0dac1209eba0746f9ce4e60c8da877f0250b96ad7"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/erlang-oauth/src/oauth.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca857639de1db46d09c0c964ce4999f524d1195bd9725be85ab76f2dfabf0ac9"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/lhttpc/src/lhttpc_sup.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dfb42350bfe213b8187d85efa5aae0bb0ce99e62ed7ebd789d66b28d35aa50c"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_ref_counter.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b4450510d4b6ebd4047b0bab8bb714b01ad59abb6d0ef792142d705eb3735a2"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_primary_sup.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ea0d7b655144e37b57faab174a94b0bed1a1b6c7d3735b69815c52509dbeac3"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochihex.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f22ffeb95b779fd088e32423895cf8cfb168b4bb38d7702306d0256c77d71260"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_uuids.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74d9cc67310f1048b13de1f0185ddb9319a3c345886d3937b69db3b2e0cd6c21"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_cover.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"adc489cd5d2bcb09d78df9d8a3c2e10c7f5ce2c80257e60776bf1cbc48c6aa46"}},{"ruleId":"D34","level":"note","message":{"text":"Orphaned file: No one still active in this repository holds living knowledge of this file: everyone who made a meaningful change to it has gone quiet, or what the current team did to it (moves, reformatting, log-level or import edits, renames) never needed understanding it. If it breaks, no one currently understands it. Attach the read to the next change that touches it: have a second person review that change, and leave behind a short comment or test recording what the file is for."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_view_parser/src/couch_view_parser.erl"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2834b2cb1d24b84b83d20c031dbd4c479d00608897d2262f17d4f5de7a44ce43"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_dcp_fake_server clause \u0060handle_control_request/3#673\u0060: \u0060couch_dcp_fake_server\u0060 clause \u0060handle_control_request/3#673\u0060 blocks the process on a synchronous outbound I/O client call (a remote HTTP request, a socket receive, or a blocking pool checkout) awaited inline while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, issue the request off the hot path \u2014 reply asynchronously and do the I/O in a throwaway spawned worker (or use the async client API), so the process keeps serving its mailbox."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":674}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a37469b421ecbfa578d4a86191593eb7401ba37a9a99ce34f159c8e4f572881"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_dcp_fake_server clause \u0060handle_stats_body/4#863\u0060: \u0060couch_dcp_fake_server\u0060 clause \u0060handle_stats_body/4#863\u0060 blocks the process on a synchronous outbound I/O client call (a remote HTTP request, a socket receive, or a blocking pool checkout) awaited inline while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, issue the request off the hot path \u2014 reply asynchronously and do the I/O in a throwaway spawned worker (or use the async client API), so the process keeps serving its mailbox."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":864}}}],"partialFingerprints":{"codehealthFindingId/v1":"5766e9e2c372af371ada533892889c6a044a40cf314fac2f374d951b415a4c43"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_dcp_fake_server clause \u0060handle_sasl_auth_body/3#877\u0060: \u0060couch_dcp_fake_server\u0060 clause \u0060handle_sasl_auth_body/3#877\u0060 blocks the process on a synchronous outbound I/O client call (a remote HTTP request, a socket receive, or a blocking pool checkout) awaited inline while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, issue the request off the hot path \u2014 reply asynchronously and do the I/O in a throwaway spawned worker (or use the async client API), so the process keeps serving its mailbox."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":878}}}],"partialFingerprints":{"codehealthFindingId/v1":"05f36ab710559165f7d17ea548ddbb367e6fb9e5ff38d3741bede4621ece8f0e"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_set_view clause \u0060handle_call/3#974\u0060: \u0060couch_set_view\u0060 clause \u0060handle_call/3#974\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view.erl"},"region":{"startLine":991}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2c91ee4201358112f8de6340619902aed53a0caea97f13945ea0803231d997f"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_file_write_guard clause \u0060handle_call/3#87\u0060: \u0060couch_file_write_guard\u0060 clause \u0060handle_call/3#87\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_file_write_guard.erl"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1f92538e52843b207602781b1842dd0a58c8daee73b311dc3933901258310ca"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_query_servers clause \u0060handle_info/2#385\u0060: \u0060couch_query_servers\u0060 clause \u0060handle_info/2#385\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_query_servers.erl"},"region":{"startLine":393}}}],"partialFingerprints":{"codehealthFindingId/v1":"e168a9f164c495c9d71cf94459f779bff793f92355e9c698f21d3692225698ab"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_server clause \u0060handle_call/3#266\u0060: \u0060couch_server\u0060 clause \u0060handle_call/3#266\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_server.erl"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"90bcb71a67eae7ec70f8416363aa3bbce328462e375aabfd3512571f94c19b32"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_system_event clause \u0060handle_info/2#56\u0060: \u0060couch_system_event\u0060 clause \u0060handle_info/2#56\u0060 blocks the process on a synchronous outbound I/O client call (a remote HTTP request, a socket receive, or a blocking pool checkout) awaited inline while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, issue the request off the hot path \u2014 reply asynchronously and do the I/O in a throwaway spawned worker (or use the async client API), so the process keeps serving its mailbox."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_system_event.erl"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"762d339771399d8d4af31ede37558797027c3f81b520c60448d2609844c0d5b5"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_task_status clause \u0060handle_cast/2#124\u0060: \u0060couch_task_status\u0060 clause \u0060handle_cast/2#124\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_task_status.erl"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd18523308915ba88ad8e23f6b0cb9da20234e330122f0914406488fc9466cb6"}},{"ruleId":"ED1","level":"warning","message":{"text":"Handler temporal coupling: couch_view clause \u0060handle_info/2#398\u0060: \u0060couch_view\u0060 clause \u0060handle_info/2#398\u0060 makes a synchronous \u0060gen_server\u0060/\u0060gen_statem:call\u0060 round-trip to a peer process while handling a message \u2014 the process is blocked (holding its mailbox) until a peer replies or the sleep elapses. That couples this handler in real time to another process being up and fast, and a mutual call can DEADLOCK. To decouple, react by casting a follow-up message (fire-and-forget), or resolve the needed state locally."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_view.erl"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"33f74921ed432880178f2e862fafdcfa37b24416dd013579cf5ca09e85a94288"}},{"ruleId":"M1","level":"warning","message":{"text":"No solution README: No README at the repository root \u2014 newcomers have no entry point."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99571e6779d583f4e10f2ad6ba5fa5b359d5b9fdc36710de4024df30895d9e03"}},{"ruleId":"M2","level":"note","message":{"text":"No ADRs: No Architecture Decision Records found \u2014 no conventional ADR directory, no numbered \u0060NNNN-title\u0060 documents in any markup this check reads, and nothing ADR-shaped by content. Design rationale recorded elsewhere (a design-notes tree, a mailing list, pull-request discussion) is not visible to this check and is not re-findable per decision, so a future maintainer cannot ask why one choice was made and get an answer."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"670b3d6e36a756d63097d0dfbf90afd5fc761308800b9354894a07c3f4e4aa14"}},{"ruleId":"M2","level":"note","message":{"text":"No architecture diagram/doc: No C4/Structurizr/PlantUML/Mermaid/Graphviz/D2 diagram, no drawn diagram named for the architecture, no file named \u0060architecture\u0060 or \u0060design\u0060 in any markup this check reads, and nothing in the README, docs or contributor guides that announces the shape \u2014 no \u0060## Architecture\u0060 heading, no \u0022architecture overview\u0022/\u0022high-level design\u0022 phrasing, no \u0022the architecture is \u2026\u0022 introduction, no guided code tour. A shape laid out in prose that never names itself as the architecture is not visible to this check, and neither is one kept outside the repository, so this row reports the absence of a re-findable shape document \u2014 not evidence that nobody wrote the shape down."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0c190e7c159d1850ee706c3ac4486e151e8a4fe169de4bf61436b9f399654f06"}},{"ruleId":"P1","level":"warning","message":{"text":"No CI pipeline: No CI workflow found (.github/workflows, azure-pipelines.yml, .gitlab-ci.yml, \u2026) \u2014 changes aren\u0027t gated by an automated build/test."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"44f01af96e50474fba2df84d95ddf4f7e1d34c29c307830b9efc9057daa6b670"}},{"ruleId":"P6","level":"note","message":{"text":"No changelog: No CHANGELOG/HISTORY/RELEASES file \u2014 what shipped when isn\u0027t easy to reconstruct for support or audit. (Versioning/tagging makes releases traceable, but a changelog records the what.)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dda5aa5aed8cbb292c3ef2b733bc138f614293ae6426c85e98bf31ef330d9415"}},{"ruleId":"P7","level":"warning","message":{"text":"Outbound HTTP without resilience: \u0060httpc:request(\u0060 makes an outbound HTTP call, and nothing bounds it: no timeout, deadline, retry or circuit breaker is set for it here, and the client has no process-wide default. A slow or failing dependency will hold this service\u0027s request, thread or connection until the call gives up on its own \u2014 or never, for a client with no default timeout."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/erlang-oauth/src/oauth_http.erl"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"b82b8629e2ccc9cb1ba83bce7c625cc6832bdb70393377f350df9bca099056f9"}},{"ruleId":"R1","level":"warning","message":{"text":"Type Safety: 0 typed \u00B7 7 plain JS \u2014 the untyped files are src/mapreduce/jsfunctions/builtin.js, src/mapreduce/jsfunctions/esprima.js, src/mapreduce/jsfunctions/is_doc_used.js, src/mapreduce/jsfunctions/unused/context.js, src/mapreduce/jsfunctions/unused/index.js, test/javascript/cli_runner.js (\u002B1 more)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d00ee7953f55325a823d27e5db9657c80ca9b9861c0c0abf8fe487cd3fa586d3"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (37 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:4988 \u00B7 src/mapreduce/jsfunctions/esprima.js:5047 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4988}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f6019dda61c058b4f222013a6802898c01217bf8be09328b6cd459d5052ca49"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (24 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:5536 \u00B7 src/mapreduce/jsfunctions/esprima.js:5625 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5536}}}],"partialFingerprints":{"codehealthFindingId/v1":"c66b2ebcd787326c58c2b7460b5a779c1c26cf4b951ea30d82a21eebbe89b18d"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (19 lines \u00D7 2 locations): src/mapreduce/jsfunctions/unused/index.js:109 \u00B7 src/mapreduce/jsfunctions/unused/index.js:178 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/unused/index.js"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"eccd7a33fa28e509d7c649648a27b1f40c329406fff0b4b5c1dbb40214395eee"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:4835 \u00B7 src/mapreduce/jsfunctions/esprima.js:5469 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4835}}}],"partialFingerprints":{"codehealthFindingId/v1":"5aec1e4a5aadc6ec930a754ff6984759655e697fea898faa0d28472bd89ce420"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:642 \u00B7 src/mapreduce/jsfunctions/esprima.js:671 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":642}}}],"partialFingerprints":{"codehealthFindingId/v1":"4787df1241ceed4e87f84ceb06e70c1487a0a526a257a099fb092daf1dac217c"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:1118 \u00B7 src/mapreduce/jsfunctions/esprima.js:1230 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1118}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b9769956d57bf6bbf6a05aea0f6b08679fa9746387ccbf29dde1fddeea0516a"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:3426 \u00B7 src/mapreduce/jsfunctions/esprima.js:3468 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3426}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed5981b0e71e5c9c630ae8ec34e910586f159bea5993a46e1b919aa19fb7b19f"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:5160 \u00B7 src/mapreduce/jsfunctions/esprima.js:5180 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5160}}}],"partialFingerprints":{"codehealthFindingId/v1":"eab3a299bdf79f0065dfc1c9a52828582e12a9f926fa3670b3389627d3c98cef"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:1811 \u00B7 src/mapreduce/jsfunctions/esprima.js:1825 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1811}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f6fe51c9475da9e7997ad6fd71d8c4e3d2fb60accc817f131fceafb8752e9ea"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:4467 \u00B7 src/mapreduce/jsfunctions/esprima.js:4507 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4467}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb39ed4e5ade2f13012a0c4fef2ab730542118c5891ea16cd21a26008fa0676b"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:2435 \u00B7 src/mapreduce/jsfunctions/esprima.js:2449 \u2014 both copies are in the same file, so extract the block into one function there and call it from each site \u2014 the copies drift apart the first time only one of them is edited."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":2435}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ac6c11b2a8217dd4967d2f230fa71e67e9da60a626c460ee243f5d6b6e54b45"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:4324 \u00B7 src/mapreduce/jsfunctions/esprima.js:4356 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4324}}}],"partialFingerprints":{"codehealthFindingId/v1":"a12d8088d12d7184c5a7d80a22042c6675a80955a7852139bde7f9855fc624bd"}},{"ruleId":"R10","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2 locations): src/mapreduce/jsfunctions/esprima.js:1787 \u00B7 src/mapreduce/jsfunctions/esprima.js:1825 \u2014 all 2 copies are in the same file, and the CITED SPAN is not a self-contained block \u2014 it runs from inside one construct into the next (the tail of a branch plus the head of the following one, a run of switch arms, the end of a declaration plus the list that follows it) rather than covering a whole unit. So do not lift these lines literally: no call can be substituted for a half-open construct. Extract the enclosing repeated UNIT instead \u2014 the whole function, component or branch these lines sit in \u2014 and where the repetition IS the construct (a run of switch arms, a stack of near-identical declarations) replace it with one table or registry looked up by key rather than a helper each arm calls. The copies still drift apart the first time only one of them is edited, which is why this is reported."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1787}}}],"partialFingerprints":{"codehealthFindingId/v1":"011000709cb372f35b576738908ee42d906a3854ece711861cbced6e353ec982"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function scanPunctuator (cyclomatic 44, cognitive 28): scanPunctuator has cyclomatic complexity 44 and cognitive complexity 28; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive sits below cyclomatic here, so much of the count is breadth \u2014 arms side by side rather than stacked \u2014 and splitting per arm would leave a function per arm; group the work between the checks into named steps instead. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":752}}}],"partialFingerprints":{"codehealthFindingId/v1":"661866089882c47a7e016a3adc5415bfbc4bd38ed80b635dc108e0844bf761d5"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseForStatement (cyclomatic 29, cognitive 59): parseForStatement has cyclomatic complexity 29 and cognitive complexity 59; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4301}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad0816f8e483b923727c6a225b21cfd7c4a9ee7577f515675a5b0ed0ce77c6f0"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function processComment (cyclomatic 28, cognitive 47): processComment has cyclomatic complexity 28 and cognitive complexity 47; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1750}}}],"partialFingerprints":{"codehealthFindingId/v1":"f89b76993d5adf33955e9b40a83cb007aadbe1e31bfbbe217d436b6a18b92b28"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function scanTemplate (cyclomatic 27, cognitive 55): scanTemplate has cyclomatic complexity 27 and cognitive complexity 55; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1156}}}],"partialFingerprints":{"codehealthFindingId/v1":"beebed263a5328169da7ef3b9f0d2d0990e577d03fab0634056caaac2b9036f5"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parsePrimaryExpression (cyclomatic 26, cognitive 34): parsePrimaryExpression has cyclomatic complexity 26 and cognitive complexity 34; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3233}}}],"partialFingerprints":{"codehealthFindingId/v1":"dce8e0e9962a3a18e07af52f03beee5289d764aaa71246790514d6a7e1beaecc"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function scanStringLiteral (cyclomatic 25, cognitive 41): scanStringLiteral has cyclomatic complexity 25 and cognitive complexity 41; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1056}}}],"partialFingerprints":{"codehealthFindingId/v1":"0265d2052104b87b11bd9553b5f427021de059280b6f7f35a73d7cd70be67665"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseStatement (cyclomatic 25, cognitive 13): parseStatement has cyclomatic complexity 25 and cognitive complexity 13; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive sits below cyclomatic here, so much of the count is breadth \u2014 arms side by side rather than stacked \u2014 and splitting per arm would leave a function per arm; group the work between the checks into named steps instead. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":4737}}}],"partialFingerprints":{"codehealthFindingId/v1":"885f25f0745454795bbbad33e3556be3053e51991d2e29bffc2e803e9fe5a965"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parse (cyclomatic 23, cognitive 28): parse has cyclomatic complexity 23 and cognitive complexity 28; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5625}}}],"partialFingerprints":{"codehealthFindingId/v1":"759e4948e7705e6eb8639b373efc69044501ab429660785852c0d4c7562c1dbf"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function scanNumericLiteral (cyclomatic 22, cognitive 40): scanNumericLiteral has cyclomatic complexity 22 and cognitive complexity 40; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":973}}}],"partialFingerprints":{"codehealthFindingId/v1":"89584aa11bc1a28c9f15cedeeacfacb9384367afc22523a5fefa0d0570fd0445"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseClassBody (cyclomatic 21, cognitive 61): parseClassBody has cyclomatic complexity 21 and cognitive complexity 61; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5088}}}],"partialFingerprints":{"codehealthFindingId/v1":"7198752d26a15df6a03d9f2768c67fb83e22a94afcc2831002197cc06993dd57"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function advance (cyclomatic 21, cognitive 22): advance has cyclomatic complexity 21 and cognitive complexity 22; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1556}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c951b8347ce79facd328cede5f4ce48dc9919142d33dd5dadfbcc09352ecb0e"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseGroupExpression (cyclomatic 19, cognitive 41): parseGroupExpression has cyclomatic complexity 19 and cognitive complexity 41; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3130}}}],"partialFingerprints":{"codehealthFindingId/v1":"626e71ecea90e533f8cc81b963a11fe0767a9a9df9937398533ab27f61773e08"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseUnaryExpression (cyclomatic 19, cognitive 17): parseUnaryExpression has cyclomatic complexity 19 and cognitive complexity 17; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive sits below cyclomatic here, so much of the count is breadth \u2014 arms side by side rather than stacked \u2014 and splitting per arm would leave a function per arm; group the work between the checks into named steps instead. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":3514}}}],"partialFingerprints":{"codehealthFindingId/v1":"b994d9f11157f32bbce1813fc7af3dc8843a984bc6c5846688228d6d11c0941c"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function unexpectedTokenError (cyclomatic 18, cognitive 35): unexpectedTokenError has cyclomatic complexity 18 and cognitive complexity 35; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":2470}}}],"partialFingerprints":{"codehealthFindingId/v1":"b768a500a715d533283fb7f7eb77b1ac13f4e1a49dc2540497c44388ed56e817"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function tokenize (cyclomatic 17, cognitive 20): tokenize has cyclomatic complexity 17 and cognitive complexity 20; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5536}}}],"partialFingerprints":{"codehealthFindingId/v1":"92a32999b1c87da0eead63776d98e4cd09b7d8c80b149c083b177414e18ea6f3"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function skipComment (cyclomatic 15, cognitive 27): skipComment has cyclomatic complexity 15 and cognitive complexity 27; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":519}}}],"partialFingerprints":{"codehealthFindingId/v1":"721401c83fe1b2e4d6f8548086f0af6b7719db3294948a9f465e52862c109b40"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function getComplexIdentifier (cyclomatic 15, cognitive 27): getComplexIdentifier has cyclomatic complexity 15 and cognitive complexity 27; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":633}}}],"partialFingerprints":{"codehealthFindingId/v1":"8246a248694885d1c9b27e6c31b5c120fa30ca8e2eb60d8aa4f2bb165c946843"}},{"ruleId":"R2","level":"warning","message":{"text":"Complex function parseFunctionExpression (cyclomatic 15, cognitive 20): parseFunctionExpression has cyclomatic complexity 15 and cognitive complexity 20; this row is raised above a cyclomatic bar of 10. The two numbers answer different questions and the gap between them is what decides whether to act: cyclomatic counts the independent arms through the body, cognitive counts what it costs to hold them in your head, so nesting and mixed boolean chains raise it while a flat run of independent arms does not. Cognitive is at or above cyclomatic here, so the branching is nested or entangled rather than laid out side by side \u2014 extracting each decision into its own named function is the change that pays. Measured by this repository\u0027s own parse of the file, so a body assembled at runtime, or generated, is counted as written rather than as it executes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":5030}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6e6054244b167f6b8513272b4460e76a36409eab21f865bfde325e085dff4c2"}},{"ruleId":"R3","level":"warning","message":{"text":"src/mapreduce/jsfunctions/esprima.js: 4833 lines of code: src/mapreduce/jsfunctions/esprima.js has 4833 significant lines (blank lines excluded), over the 400-line bar, and contains logic \u2014 a file this long is usually several responsibilities in one module."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mapreduce/jsfunctions/esprima.js"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"057556205808ba6a13eef45ce6759799b24eb547cb8585d42a3b4d9d4852091c"}},{"ruleId":"X10","level":"note","message":{"text":"Duplicated predicate: \u0060C =:= $\\s orelse C =:= $\\t orelse C =:= $\\r orelse C =:= $\\n\u0060 appears character-identically in 3 files \u2014 src/mochiweb/src/mochijson2.erl, src/mochiweb/src/mochiweb_cookies.erl, src/mochiweb/src/mochiweb_html.erl. It is one line, so the duplication detector\u0027s token window never sees it; the copies drift when only one is corrected. Give the condition a name and one home."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson2.erl"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e0b3542759351d2193723eb08152f4279d2cea9344c0eb7ee2b16c38d83fd9"}},{"ruleId":"X10","level":"note","message":{"text":"Duplicated predicate: \u0060equiv(V1, V2) andalso equiv_list(L1, L2)\u0060 appears character-identically in 2 files \u2014 src/mochiweb/src/mochijson.erl, src/mochiweb/src/mochijson2.erl. It is one line, so the duplication detector\u0027s token window never sees it; the copies drift when only one is corrected. Give the condition a name and one home."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochijson.erl"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"19a0d8ba1c073bc5029386027447fd6a6f5593f1b09176b37b57e418672ecbb1"}},{"ruleId":"X10","level":"note","message":{"text":"Duplicated predicate: \u0060has_part_seq(PartId, ?set_unindexable_seqs(Group)) andalso not lists\u0060 appears character-identically in 2 files \u2014 src/couch_set_view/src/couch_set_view_updater.erl, src/couch_set_view/src/couch_set_view_updater_helper.erl. It is one line, so the duplication detector\u0027s token window never sees it; the copies drift when only one is corrected. Give the condition a name and one home."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_updater.erl"},"region":{"startLine":480}}}],"partialFingerprints":{"codehealthFindingId/v1":"913f34b2a69b46fb333a0287d3914fbf338a1b4278320ca61b3d154c7ddadc30"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch error:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_cover.erl"},"region":{"startLine":59}}}],"partialFingerprints":{"codehealthFindingId/v1":"44b5c318fade63698e15dad59b6291cc78728c3928b9c8a5c036cad995656af9"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_http.erl"},"region":{"startLine":235}}}],"partialFingerprints":{"codehealthFindingId/v1":"308d2006646669a4742249232dee7eb4ff97706fd3d3777633b0aa55ff43da13"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _Type:_Error\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_util.erl"},"region":{"startLine":470}}}],"partialFingerprints":{"codehealthFindingId/v1":"d745157791787a6244e83a24827fce5893956bff6fd4b0c8c3d4c24fd4a364d0"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/mochiweb_websocket.erl"},"region":{"startLine":215}}}],"partialFingerprints":{"codehealthFindingId/v1":"4455fe2a16245e157b6d43a504ed5ed19838dd38d5da899bd4f33498f4f84623"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/mochiweb/src/reloader.erl"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bb988f4c950d4ecf9e89b450220e7626b4793349468bfaac91dae62ffe3b830"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_system_event.erl"},"region":{"startLine":242}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e0edcb34061dc7867509a955331c22bbaea0b8c726b1600a73bb336278b91f8"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_util.erl"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"c33df0d66477b03bcb5cd36bb7ada29496ee7ee66f11d98446defc64aa44226d"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_util.erl"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dd3ab86dfdc2cdc021bb953d3d4b33f9c0707f06811540d67dc83696376ccf0"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_util.erl"},"region":{"startLine":477}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1f5dcf3ed80828c44e61d4eea39ea699ff16ff755ff903a928ce35e9095890a"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_work_queue.erl"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf8b9243edfdede95a44dc568f78227f68f7cfd6f8d5983d3f15c1d645d7091f"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_work_queue.erl"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"6716062e03a33054c79a7e6a83d248a3f38e5cf16d13967a0225575dc2ae8324"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/couch_work_queue.erl"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4971f387dd1b53fbb05a78e141380cfe4a2914f57aaec0207a77dec517d2afc"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _T:_E\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couchdb/src/file2.erl"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"c04d57b8945de4814bd006e2ce58fe33839a7b1607a0475428043b731910502c"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_set_view/src/couch_set_view_ddoc_cache.erl"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a7a1af2a283edd6ae139e0a1daa9c47765c9c8f1478b6289f059a901955be07"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_index_merger/src/couch_httpd_view_merger.erl"},"region":{"startLine":258}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9c82e5968d99e2880ee1429ec7f9a10c1c4f9f144ec3601ec65c665a8ab090b"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_audit/src/couch_audit.erl"},"region":{"startLine":516}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb8a51af8f9120557c981ccfa6cd6a2af0db18a555923999d6c5a4fc5ea6c496"}},{"ruleId":"X3","level":"warning","message":{"text":"Swallowed exception (caught, then discarded): \u0060catch _:_\u0060 takes every exception and records none of it \u2014 the body neither logs it, rethrows it, nor even names it, so the failure is discarded as completely as by an empty catch and only the substituted value survives. Log it through whatever this codebase already uses to report problems, narrow the catch to the exception this call can actually raise, or say in a comment on the catch why the failure genuinely cannot matter."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_audit/src/couch_audit.erl"},"region":{"startLine":591}}}],"partialFingerprints":{"codehealthFindingId/v1":"0200906029140fb7d2864257b5273c693d1bcf5559fa0811c7b6b4482ecc7ce6"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:set_failover_log/2\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bd82d6cd9267d5597e01aa71d981b2ef97c8280be91ed4ddaf9b153fb17513e"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:set_persisted_items_fun/1\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"8236b946aee96665e741e86d04855f13fd094de61f16a79bd687e4245d8b07a6"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:set_items_per_snapshot/1\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"308ebd686343ded162791b679cec005acad2c916e3595cae8b4fd33a294a4369"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:set_dups_per_snapshot/1\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"27d663455372bee0c045e005d3fcd9bd5f4c5f497dd1fe5f3c2fe005b79d0ea3"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:pause_mutations/0\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"9485db1d12183e4f26359350fe71f5fc2cd3f178dca3de5f07b73d710be4659f"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:ceil_div/2\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"63e6254d9f6dec972722a02280e3accd29ea334098be89776b9eb093e571915b"}},{"ruleId":"X31","level":"note","message":{"text":"Test-only surface in a production module: \u0060couch_dcp_fake_server:num_items_with_dups/3\u0060 is exported unconditionally, and the comment directly above the \u0060-export\u0060 on this line says the exports below it are for testing. Erlang has no visibility below \u0060-export\u0060, so this is part of the module\u0027s public contract: it cannot be changed without a compatibility argument. This arm read the comment, not the call graph: if the comment is right and only tests call it, wrapping the attribute in \u0060-ifdef(TEST). \u2026 -endif.\u0060 keeps the test\u0027s access and removes it from the shipped module. If production code calls it, the comment is stale and wrapping the export would break the build \u2014 delete the comment and document the function as part of the module\u0027s API."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/couch_dcp/src/couch_dcp_fake_server.erl"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5f3c07ea7133ce568cdf2226a6115bdf487c7038cf0ce73cdf83ffb5263974c"}}],"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-1333","guid":"11a336ce-63de-c45c-845e-29ca1e8df13d","name":"CWE-1333","shortDescription":{"text":"CWE-1333"},"helpUri":"https://cwe.mitre.org/data/definitions/1333.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-540","guid":"1a9db5db-e5bb-ae5d-935a-d1b4e9ee080b","name":"Inclusion of Sensitive Information in Source Code","shortDescription":{"text":"Inclusion of Sensitive Information in Source Code"},"helpUri":"https://cwe.mitre.org/data/definitions/540.html"},{"id":"CWE-676","guid":"550e6fab-2881-3252-8a05-c688a6b19c14","name":"Use of Potentially Dangerous Function","shortDescription":{"text":"Use of Potentially Dangerous Function"},"helpUri":"https://cwe.mitre.org/data/definitions/676.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Improper Neutralization of Special Elements used in a Command (\u0027Command Injection\u0027)","shortDescription":{"text":"Improper Neutralization of Special Elements used in a Command (\u0027Command Injection\u0027)"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)","shortDescription":{"text":"Improper Neutralization of Special Elements used in an OS Command (\u0027OS Command Injection\u0027)"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)","shortDescription":{"text":"Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)"},"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":"Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)","shortDescription":{"text":"Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Improper Control of Generation of Code (\u0027Code Injection\u0027)","shortDescription":{"text":"Improper Control of Generation of Code (\u0027Code Injection\u0027)"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]},{"name":"OWASP Top 10","guid":"7d1f0c2e-4b6a-4e39-9a51-0b2e8c3d5f61","version":"2025","organization":"OWASP Foundation","informationUri":"https://top10.owasp.org/2025/","isComprehensive":false,"shortDescription":{"text":"The OWASP Top 10:2025 web application security risks."},"taxa":[{"id":"A01:2025","guid":"df693558-c822-0452-8f7b-4d53cb6bcc59","name":"Broken Access Control","shortDescription":{"text":"Broken Access Control"},"helpUri":"https://top10.owasp.org/2025/A01_2025-Broken_Access_Control/"},{"id":"A02:2025","guid":"668dee9e-41bc-6354-97d0-fdf8f40c50c1","name":"Security Misconfiguration","shortDescription":{"text":"Security Misconfiguration"},"helpUri":"https://top10.owasp.org/2025/A02_2025-Security_Misconfiguration/"},{"id":"A05:2025","guid":"87e86033-3231-8458-8e4a-5cb82743553a","name":"Injection","shortDescription":{"text":"Injection"},"helpUri":"https://top10.owasp.org/2025/A05_2025-Injection/"},{"id":"A06:2025","guid":"491554d7-b8e4-9652-91a9-53700dc92ece","name":"Insecure Design","shortDescription":{"text":"Insecure Design"},"helpUri":"https://top10.owasp.org/2025/A06_2025-Insecure_Design/"},{"id":"A07:2025","guid":"334ddd78-539d-d35c-83dd-253647eb7eaf","name":"Authentication Failures","shortDescription":{"text":"Authentication Failures"},"helpUri":"https://top10.owasp.org/2025/A07_2025-Authentication_Failures/"}]}],"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":36,"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."]}]}