{"$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":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"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":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28","relationships":[{"target":{"id":"CWE-798","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-259","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-798","CWE-259"]}},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29","relationships":[{"target":{"id":"CWE-79","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-89","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-78","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-94","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-77","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-79","CWE-89","CWE-78","CWE-94","CWE-77"]}},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33","relationships":[{"target":{"id":"CWE-1395","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]},{"target":{"id":"CWE-937","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1395","CWE-937"]}},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37","relationships":[{"target":{"id":"CWE-1059","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},"kinds":["relevant"]}],"properties":{"cwe":["CWE-1059"]}}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"CouchbaseDocumentSerializer.visit (cyclomatic 37): CouchbaseDocumentSerializer.visit has cyclomatic complexity 37 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c9c48a9d1a617ed2ac8e38dac20e748becd7f4052221dbcff0c1ea6e36a4ec9"}},{"ruleId":"D1","level":"warning","message":{"text":"FindMethod.internalFind (cyclomatic 32): FindMethod.internalFind has cyclomatic complexity 32 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"ece21a22f599942eb0a397f31291cdb4ee97968f059895bf018f97e4478a1995"}},{"ruleId":"D1","level":"warning","message":{"text":"StringBasedN1qlQueryParser.getProjectedFieldsInternal (cyclomatic 26): StringBasedN1qlQueryParser.getProjectedFieldsInternal has cyclomatic complexity 26 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4bdbcde6a952cb061937ab6f82d41460b48de340f73bd8e24ddece70c9b76d2"}},{"ruleId":"D1","level":"warning","message":{"text":"ReactiveFindBySearchSupport.buildSearchOptions (cyclomatic 20): ReactiveFindBySearchSupport.buildSearchOptions has cyclomatic complexity 20 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e24643c8ac0a49dce7fdfa8c60cb64a73627043162dd325df5fc3fd7f682f23"}},{"ruleId":"D1","level":"warning","message":{"text":"CouchbaseExceptionTranslator.translateExceptionIfPossible (cyclomatic 19): CouchbaseExceptionTranslator.translateExceptionIfPossible has cyclomatic complexity 19 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8ea2148e3a86f2be2bd00268270af3d1837ce172ba4692578902401e8d76896"}},{"ruleId":"D1","level":"warning","message":{"text":"StringBasedN1qlQueryParser.checkPlaceholders (cyclomatic 18): StringBasedN1qlQueryParser.checkPlaceholders has cyclomatic complexity 18 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"c38f538ac23570a3c207319e37540dd08af84386e17ed21fc19e9dfe1062300b"}},{"ruleId":"D1","level":"warning","message":{"text":"PseudoArgs.\u003Cinit\u003E (cyclomatic 16): PseudoArgs.\u003Cinit\u003E has cyclomatic complexity 16 (threshold 15). To reduce it, separate the cases: extract each independent branch into its own named function, and where the body has guards that only reject input, fold those into early returns at the top."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"5695c874db976add99c34d6e6f1dd3ad9f31725346c6715bad0a39c0429b0ea3"}},{"ruleId":"D2","level":"warning","message":{"text":"CouchbaseDocumentSerializer.visit (cognitive 116): CouchbaseDocumentSerializer.visit has cognitive complexity 116 (threshold 15). Drivers by points: if/else 115, boolean chains 1 (nesting depth added 76). 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/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"71e31eee3e5262bfe17c5d5a5390b554c3865f1f4845d8582a4c87f7bb22b660"}},{"ruleId":"D2","level":"warning","message":{"text":"FindMethod.internalFind (cognitive 67): FindMethod.internalFind has cognitive complexity 67 (threshold 15). Drivers by points: if/else 52, loops 9, boolean chains 6 (nesting depth added 36). 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/main/java/org/springframework/data/couchbase/repository/support/FindMethod.java"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcee22c78057a6ef4df187f6a97c012b0502add6c9d6c784a031e31cbd87e268"}},{"ruleId":"D2","level":"warning","message":{"text":"StringBasedN1qlQueryParser.getProjectedFieldsInternal (cognitive 43): StringBasedN1qlQueryParser.getProjectedFieldsInternal has cognitive complexity 43 (threshold 15). Drivers by points: if/else 34, boolean chains 5, loops 2, ternaries 2 (nesting depth added 16). 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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2b0b366865493a0229ee260f29048835f89cc4ad28f98a777f385cc61998e7c"}},{"ruleId":"D2","level":"warning","message":{"text":"QueryCriteria.maybeWrapValue (cognitive 30): QueryCriteria.maybeWrapValue has cognitive complexity 30 (threshold 15). Drivers by points: if/else 22, loops 4, error handling 3, boolean chains 1 (nesting depth added 15). 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/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java"},"region":{"startLine":655}}}],"partialFingerprints":{"codehealthFindingId/v1":"755b8c49be825d0c68010c52f6ac7009c4211ca94808191b29d7091fa483f0f3"}},{"ruleId":"D2","level":"warning","message":{"text":"StringBasedN1qlQueryParser.checkPlaceholders (cognitive 30): StringBasedN1qlQueryParser.checkPlaceholders has cognitive complexity 30 (threshold 15). Drivers by points: if/else 22, loops 5, ternaries 2, boolean chains 1 (nesting depth added 12). 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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"7635d4714196604888eb30f4ebb23bdecba44b1497f5867578fb697327d82d99"}},{"ruleId":"D2","level":"warning","message":{"text":"ReactiveFindBySearchSupport.buildSearchOptions (cognitive 27): ReactiveFindBySearchSupport.buildSearchOptions has cognitive complexity 27 (threshold 15). Drivers by points: if/else 21, boolean chains 6 (nesting depth added 5). To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java"},"region":{"startLine":381}}}],"partialFingerprints":{"codehealthFindingId/v1":"6676ab01aa8d07253dd3592c86ef8f249b3ccd176afc555d77a4c940c7298671"}},{"ruleId":"D2","level":"warning","message":{"text":"GeoUtils.convertPointsTo2DRanges (cognitive 23): GeoUtils.convertPointsTo2DRanges has cognitive complexity 23 (threshold 15). Drivers by points: ternaries 12, if/else 7, boolean chains 2, loops 2 (nesting depth added 11). 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/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa5bad5144f81637244536ec03743fb41c9a3e03a7a1c20dc1d11747a5140a75"}},{"ruleId":"D2","level":"warning","message":{"text":"GeoUtils.convertShapeTo2DRanges (cognitive 23): GeoUtils.convertShapeTo2DRanges has cognitive complexity 23 (threshold 15). Drivers by points: ternaries 16, if/else 4, loops 3 (nesting depth added 14). 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/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"8410cf674cc3f9785d65a24da367d6286ee2d95be2ef95d5ed4be5084d657f61"}},{"ruleId":"D2","level":"warning","message":{"text":"CryptoConverter.coerceToBytesWrite (cognitive 22): CryptoConverter.coerceToBytesWrite has cognitive complexity 22 (threshold 15). Drivers by points: if/else 12, error handling 5, ternaries 4, boolean chains 1 (nesting depth added 12). 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/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e2357cf35fe35dde22bc52f487f0ecf427e52f50456add289f4a0e2c836e6ce"}},{"ruleId":"D2","level":"warning","message":{"text":"PseudoArgs.\u003Cinit\u003E (cognitive 22): PseudoArgs.\u003Cinit\u003E has cognitive complexity 22 (threshold 15). Drivers by points: if/else 18, boolean chains 4 (nesting depth added 7). 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/main/java/org/springframework/data/couchbase/core/support/PseudoArgs.java"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"3726705cddee415386e30182bd37223c9630c391c9e963acf95d1bfd230aa775"}},{"ruleId":"D2","level":"warning","message":{"text":"ReactiveFindByIdSupport.initGetOptions (cognitive 22): ReactiveFindByIdSupport.initGetOptions has cognitive complexity 22 (threshold 15). Drivers by points: if/else 11, ternaries 8, boolean chains 3 (nesting depth added 9). 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/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java"},"region":{"startLine":233}}}],"partialFingerprints":{"codehealthFindingId/v1":"20716c53291d0795dd594a76194bc97916bd3bb70b1d23fa34cf414546739bd5"}},{"ruleId":"D2","level":"warning","message":{"text":"CouchbaseExceptionTranslator.translateExceptionIfPossible (cognitive 18): CouchbaseExceptionTranslator.translateExceptionIfPossible has cognitive complexity 18 (threshold 15). Drivers by points: if/else 11, boolean chains 7. To reduce it, split the body: this score is breadth rather than depth \u2014 many checks laid out side by side rather than nested inside one another, so inverting conditions into early returns has nothing left to flatten. Group the statements between the checks into named steps and move each step into its own function, so the body reads as a short sequence of named stages."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/CouchbaseExceptionTranslator.java"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e8b8bb10412970708b4a2792e160ff05fd400151c0f7cb453985cd5d747605b"}},{"ruleId":"D2","level":"warning","message":{"text":"ReactiveFindByQuerySupport.all (cognitive 18): ReactiveFindByQuerySupport.all has cognitive complexity 18 (threshold 15). Drivers by points: if/else 10, ternaries 7, boolean chains 1 (nesting depth added 5). 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/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java"},"region":{"startLine":193}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c6d299452a3f34d72bf199f2f3badb5382c3433b9358bdbc682ead649ec022a"}},{"ruleId":"D2","level":"warning","message":{"text":"CouchbasePropertyValueConverterFactory.maybeTypePropertyConverter (cognitive 17): CouchbasePropertyValueConverterFactory.maybeTypePropertyConverter has cognitive complexity 17 (threshold 15). Drivers by points: if/else 10, loops 5, boolean chains 2 (nesting depth added 10). 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/main/java/org/springframework/data/couchbase/core/convert/CouchbasePropertyValueConverterFactory.java"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"c214392cb3718320505c4c309032d40ec511bd08414833d88146409a921ca6ce"}},{"ruleId":"D2","level":"warning","message":{"text":"CryptoConverter.coerceToJson (cognitive 17): CryptoConverter.coerceToJson has cognitive complexity 17 (threshold 15). Drivers by points: if/else 14, ternaries 2, boolean chains 1 (nesting depth added 5). 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/main/java/org/springframework/data/couchbase/core/convert/CryptoConverter.java"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"432954cb3120d9bf8a3a602707a8c24798037c6235941d07ea4b3deadf1abae5"}},{"ruleId":"D2","level":"warning","message":{"text":"AuditingEventListener.onApplicationEvent (cognitive 17): AuditingEventListener.onApplicationEvent has cognitive complexity 17 (threshold 15). Drivers by points: if/else 13, boolean chains 2, ternaries 2 (nesting depth added 5). 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/main/java/org/springframework/data/couchbase/core/mapping/event/AuditingEventListener.java"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"c025c80761385b08f6265c922b7421b80fbd7513c70e6a721c7c99c7dad7b48a"}},{"ruleId":"D2","level":"warning","message":{"text":"N1qlJoinResolver.buildQuery (cognitive 16): N1qlJoinResolver.buildQuery has cognitive complexity 16 (threshold 15). Drivers by points: if/else 11, ternaries 3, loops 2 (nesting depth added 5). 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/main/java/org/springframework/data/couchbase/core/convert/join/N1qlJoinResolver.java"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"67d4cae70ab5bdbcfc587463b10bfa836eb385595c993936e1099d3317a1a92e"}},{"ruleId":"D2","level":"warning","message":{"text":"2.doWithPersistentProperty (cognitive 16): 2.doWithPersistentProperty has cognitive complexity 16 (threshold 15). Drivers by points: if/else 14, boolean chains 2 (nesting depth added 5). 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/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java"},"region":{"startLine":625}}}],"partialFingerprints":{"codehealthFindingId/v1":"35b6e24e1aa25ae94459c28929c484b2c0522480b01d0e1dbae8e24754b62ab7"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: QueryCriteria: TooManyMethods \u2014 78 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"5889d71ed8c43ddcdf588993e7a014c3d7e86625ece7096146dd5d5f36f0f964"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: MappingCouchbaseConverter: TooManyMethods \u2014 47 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java"},"region":{"startLine":100}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fcf4a19fe4ff35441bc4dca819dc1b310a02c3fde7520974e2569eea12d4a7a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AbstractCouchbaseConfiguration: TooManyMethods \u2014 40 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java"},"region":{"startLine":103}}}],"partialFingerprints":{"codehealthFindingId/v1":"41cc353871023b548870fade9e7c9efd85c29b92d376d9ad0c723a8df2afc2aa"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: OptionsBuilder: TooManyMethods \u2014 38 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"76cbec3446f0bea6f51839e44d05e75265a7bf24bcb44e4488002bdf89aec383"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: Query: TooManyMethods \u2014 38 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/Query.java"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"736b1f28b913bcc2584655173b2b06dfcbb4b02d95823c79d3de2b6653a679b0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: convert/MappingCouchbaseConverter.java: FileTooLong \u2014 592 significant lines (blank, comment-only and punctuation-only lines excluded)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"481120b89ab5773952bc44cbba41542379a8888519c820a18c9f78afb1e06cb7"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CouchbaseTemplate: TooManyMethods \u2014 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b153cf16a94ec7d5b66def822fc425cbcdbd97b5fda0c254c1af6348bba912e"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: ReactiveCouchbaseTemplate: TooManyMethods \u2014 31 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"8df7f59fe313fe3c54aca90dea8235af1f938d505261e03f7576de6593b45931"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:97-109 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:283-295 \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/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"36f050f38f3311bcc76042aa2cd29c2bc42f37ebd016e770520c37857509c720"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java:214-227 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java:283-295 \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/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba7ee348a48fdd92032e57cefa1e7cad4752579ad65c630c5d419ddb7a910983"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java:154-166 | src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java:204-216 \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/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"987050e3e42b6ba377cdd5ae45c88df1feed7eea2337a939e264055dc9678dd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java:112-123 | src/main/java/org/springframework/data/couchbase/repository/config/RepositoryOperationsMapping.java:116-127 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/config/ReactiveRepositoryOperationsMapping.java"},"region":{"startLine":112}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba278c062c4170655090e2cedecc8ba942b1037938046b2a97f534c95c89435d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 7): src/main/java/org/springframework/data/couchbase/core/ExecutableFindBySearchOperationSupport.java:80-90 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java:93-103 | src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java:83-93 | src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java:89-99 | src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java:68-78 | src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java:86-96 | src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java:75-85 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ExecutableFindBySearchOperationSupport.java"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"f63750cdddb0db12b39343627c694c1714f35eba26139945b3a2826b5a07cea5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 6): src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java:86-96 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java:100-110 | src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java:84-94 | src/main/java/org/springframework/data/couchbase/core/ReactiveRangeScanOperationSupport.java:69-79 | src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java:87-97 | src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java:76-86 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"d58642e4a405be34244cdb8b76ea49f034b37197b631974bdc1215b4dd5a1758"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 4): src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java:62-72 | src/main/java/org/springframework/data/couchbase/core/ExecutableRangeScanOperationSupport.java:55-65 | src/main/java/org/springframework/data/couchbase/core/ExecutableReplaceByIdOperationSupport.java:62-72 | src/main/java/org/springframework/data/couchbase/core/ExecutableUpsertByIdOperationSupport.java:62-72 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ExecutableInsertByIdOperationSupport.java"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce2537f646c0affa005c468987253a5114941dfffccb256cf0d21614ad334ae8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java:93-103 | src/main/java/org/springframework/data/couchbase/core/query/Query.java:293-303 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/AnalyticsQuery.java"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"a86d5bf39ecbf072f34e89ce16e776fd899639be8aaad2ba1706fa4874b1952a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:239-249 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:261-271 \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/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1cf7333b81c7410674fe02160e323ace757480a2efd4e30d75b22828c7fe92e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java:107-117 | src/main/java/org/springframework/data/couchbase/core/ReactiveCouchbaseTemplate.java:88-98 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"d16eb9ad839abb7aba11bdab5b4ae74c562b39d7c99072dfdf1a24c64bd8c996"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java:83-93 | src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java:91-101 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ExecutableMutateInByIdOperationSupport.java"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"5871ea3362fbedecf6839dce29e321c6379cdc5041300a9efa4ee1421d0f289b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java:137-147 | src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java:153-163 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java"},"region":{"startLine":137}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ffef14d3e43cccc2ca3adcff56c6fb1298de01b802f776b2a58e9d330e7b168"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java:122-132 | src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java:102-112 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveMutateInByIdOperationSupport.java"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"f424bdee55e0dc7434603d2934be3710743ff6cd161fe606f16b7518f38f206c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java:61-71 | src/main/java/org/springframework/data/couchbase/repository/query/SearchBasedCouchbaseQuery.java:55-65 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"f34e3bd1317ca4377b743da3a1c7e43da60fbd124df2189e406d403652c4809a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java:39-48 | src/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java:59-68 \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/main/java/org/springframework/data/couchbase/repository/query/support/AwtPointInShapeEvaluator.java"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ec49bae41aa8d7f23079a0cd18248ea82b0ce079bf57e670a4bbffae959673d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java:97-106 | src/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java:147-156 \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/main/java/org/springframework/data/couchbase/repository/query/support/PointInShapeEvaluator.java"},"region":{"startLine":97}}}],"partialFingerprints":{"codehealthFindingId/v1":"258e6539d6d612367f226a667706deb5adfd0c9ea8757cde0e4ab0f4409a00ac"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java:152-161 | src/main/java/org/springframework/data/couchbase/repository/query/SearchBasedCouchbaseQuery.java:174-183 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"8563d4d664828c66b077d7e81d05c86fe58fb1dd932b77de9c44b0fb2bb9b2be"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:289-298 | src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:305-314 \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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5e6f539e35bc686c1ff3993088a5dfc18dc2b781f00c1bde472fd0f751ab6c5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 4): src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:194-202 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:213-221 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:232-240 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:254-262 \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/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":194}}}],"partialFingerprints":{"codehealthFindingId/v1":"0abaa57dbef9344e0eb7030c0fc6bbcd17f28b6d15dc28b8a72cb59fbfec8288"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java:132-140 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindByQueryOperationSupport.java:234-242 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java"},"region":{"startLine":132}}}],"partialFingerprints":{"codehealthFindingId/v1":"d466911b653c26b1d77726144cfbfd32dfbb0eed6d9907cef6644a412cacd810"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java:213-221 | src/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java:233-241 \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/main/java/org/springframework/data/couchbase/querydsl/document/CouchbaseDocumentSerializer.java"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"3200c16e9e16dfef8232e6d56831748a6fc7601d90ebeb57d0b8c90b567d6e9d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java:93-101 | src/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java:128-136 \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/main/java/org/springframework/data/couchbase/repository/query/support/GeoUtils.java"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ac4aaca79b5e61d5bd37674298528e323ba46f44547f35b9f37de4fc8b2ca72"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java:53-61 | src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java:140-148 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it wherever the callers may both depend on (the module they already share, or a small common one if they share none) and call it from each site \u2014 until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlQueryCreatorUtils.java"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"456cf3cd1c13b06b28997ba638c9531bb82d37052b1efaf6e7e37481d309563f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java:94-102 | src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java:63-72 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"5352a100cc671a37f5bc6925a812efd7f4c533039c5fe313fab83ef30e8888a1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:422-430 | src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:451-459 \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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":422}}}],"partialFingerprints":{"codehealthFindingId/v1":"d869c870954e98012aaa41839f26ef6f7ff432b6250843b074c75a051fecb1a6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/query/Query.java:431-438 | src/main/java/org/springframework/data/couchbase/core/query/StringQuery.java:118-125 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/Query.java"},"region":{"startLine":431}}}],"partialFingerprints":{"codehealthFindingId/v1":"161232af4efbca32b181430898543b263f414188e9ac14337aff0492d15c5784"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java:120-127 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java:155-162 \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/main/java/org/springframework/data/couchbase/core/ReactiveFindByAnalyticsOperationSupport.java"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c8ae949b8748e5fb5c37e3b6df144f07b1d4adeeecd7795eded60a9b5aeb4af"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java:83-91 | src/main/java/org/springframework/data/couchbase/repository/query/ReactivePartTreeN1qlBasedQuery.java:72-79 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/PartTreeN1qlBasedQuery.java"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4c790e09e5374023a30e35ac86211ec8a3fe29e6c788e5d6772e736d39e67af"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:405-413 | src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:450-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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":405}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff5c0c6b9ca26e02ba2f682fa65c152ef17d01ba13690ab04b0df7c9c9fb90d9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:485-492 | src/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java:509-516 \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/main/java/org/springframework/data/couchbase/repository/query/StringBasedN1qlQueryParser.java"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e226ce90b0d691c753ff22e651d8400dbdc08a87f35d4279e6afabb9ae1ba58"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 8): src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:366-372 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:379-385 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:392-398 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:409-415 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:426-432 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:444-450 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:460-466 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:477-483 \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/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":366}}}],"partialFingerprints":{"codehealthFindingId/v1":"06ba9afa708b522b0f78ed2f53efa7941a2d177e0f02c048bf3f96394108ad97"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java:79-85 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindFromReplicasByIdOperationSupport.java:78-84 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveExistsByIdOperationSupport.java"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9dc9b448dbbb2b0f45cd5d6f81b0c63710481054140ba1848c5400ceb094b76"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java:98-104 | src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java:101-107 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9ef9c1fc6bf32966f3618d95cd112c7314d43ad7688c11239a3d1f38dfee37a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java:277-283 | src/main/java/org/springframework/data/couchbase/repository/query/AbstractN1qlBasedQuery.java:66-73 \u2014 the copies span different directories, so extracting a shared function means choosing where it lives: put it wherever the callers may both depend on (the module they already share, or a small common one if they share none) and call it from each site \u2014 until then, every change has to be made twice."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/support/N1qlUtils.java"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d561afe5dd11f821657cb33f7a7e22d5fea8787290e0347f7f61b0783ad0c49"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java:109-115 | src/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java:142-148 \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/main/java/org/springframework/data/couchbase/repository/query/CouchbaseQueryExecution.java"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"095d1d7e43d1ce7545e0989ee3eea1939d8ff3bd658e52199cefef0e9da4efda"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java:109-115 | src/main/java/org/springframework/data/couchbase/repository/query/SearchBasedCouchbaseQuery.java:92-98 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/ReactiveSearchBasedCouchbaseQuery.java"},"region":{"startLine":109}}}],"partialFingerprints":{"codehealthFindingId/v1":"1792ab85a2dc52792d3af98236820b0a5b236278a05c25fb22f46179fb51f2a2"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:402-407 | src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java:419-424 \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/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":402}}}],"partialFingerprints":{"codehealthFindingId/v1":"92ef17b54bea0c6069114f857ff52e2c8139b23339e0677121929bea0737e700"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ExecutableFindBySearchOperationSupport.java:200-205 | src/main/java/org/springframework/data/couchbase/core/ExecutableFindBySearchOperationSupport.java:209-214 \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/main/java/org/springframework/data/couchbase/core/ExecutableFindBySearchOperationSupport.java"},"region":{"startLine":200}}}],"partialFingerprints":{"codehealthFindingId/v1":"98e87f3f2cdbd78684c36fe473cfbc024446e448101269b0013042511197ef40"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java:166-171 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java:175-180 \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/main/java/org/springframework/data/couchbase/core/ReactiveFindBySearchOperationSupport.java"},"region":{"startLine":166}}}],"partialFingerprints":{"codehealthFindingId/v1":"589cd5a3aa0bd9e6e3a4935b49c8112b5f3faa218e9068457be2a569972300c7"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java:114-119 | src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java:111-116 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d358454e29d1c6ee21ac68224d7b6ddc7280e6752e8aa49ea93c12305952fee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java:85-90 | src/main/java/org/springframework/data/couchbase/repository/query/StringN1qlQueryCreator.java:104-109 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/N1qlQueryCreator.java"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddba69341aeec3c6008f1dfebc2689b9653cb97e5186857b31e50d8745102917"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java:115-119 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java:122-126 | src/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java:127-131 \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/main/java/org/springframework/data/couchbase/core/ReactiveFindByIdOperationSupport.java"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d6fcbffb00edfa6d09460396e50ae7802fb8d9e7581aea3af4b2845a5ca5720"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 3): src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java:62-66 | src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java:65-69 | src/main/java/org/springframework/data/couchbase/core/ReactiveUpsertByIdOperationSupport.java:54-58 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/ReactiveInsertByIdOperationSupport.java"},"region":{"startLine":62}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e36667b2079022fdf71449c12b02ab7911c706dd674ee9ae7370bcd11429120"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java:124-128 | src/main/java/org/springframework/data/couchbase/repository/query/AbstractReactiveCouchbaseQuery.java:120-124 \u2014 the copies sit in sibling files of one directory: extract the block into a single shared function in that directory and call it from each site, so a change lands once."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/repository/query/AbstractCouchbaseQuery.java"},"region":{"startLine":124}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad5a0bad3b32b3e72651e57b0e9d4e6409a0d5841a400b187ba97a0bcf162f8e"}},{"ruleId":"D16","level":"note","message":{"text":"Off-boarding risk: anonymized user #1: If anonymized user #1 becomes unavailable, 1 significant file(s) lose their only recent owner: src/main/java/org/springframework/data/couchbase/core/ReactiveReplaceByIdOperationSupport.java. Pair on, review, or document these before any departure."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4ae3033ce446d7d44f2bd3b8bdb54d63604bb722c5538d7eabb3a6f36afabfcb"}},{"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 (2 single-owned of 185 analysed files in total)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6eac528f2429e724e1a97ed868f79eefbcf1888dab4af9a9e673429369bb5b2f"}},{"ruleId":"D19","level":"note","message":{"text":"The README states it \u0027aims to provide a familiar and consistent Spring-based programming model\u0027 but does not describe how to configure or use the template, repository interfaces, or N1QL query support beyond the brief sentence.: Expand on setup (how to build/run the Docker image), configuration of CouchbaseTemplate/repository auto-implementation, and an example of a finder method backed by N1QL."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"README.adoc"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1cb70e7e091bb645b04c454cceaf80e6ddd1c25059a29cd1b844e299dddeb10"}},{"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":"c8012c42d297dc9578a0981eaaa3ed7c6e73ed5aa3dc41882e27c10ca099fea5"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"d95c4c3dfd6386feea3648e62ae29dd32fd1261cfa7d66f07afcd9e941dfa68b"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"1ef96efca2da93a93a3ab2d26d55f0abe24dd0dc0e87acacf709503d6280ef9a"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"1c79afdb57944220757997b2e55b01e3128730bd64fb98b624ea4a33d9bf9130"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"819d780f48cfc385ed2439241c35ad752b68d0cf885d99f7c625cd6ae820aae2"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"44c950b8ab1c2f80a16a434a3a57f652681c05ba3cfd8512d0a2418f3d6b0d22"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"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":"190aab611a91f67fab19c1886161430b923f80658b72cb7521d70b79bc081422"},"taxa":[{"id":"CWE-1357","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}},{"id":"CWE-353","toolComponent":{"name":"CWE","guid":"c3a2b1d0-7f3e-4b2a-9c1d-5e6f7a8b9c0d"}}]},{"ruleId":"D34","level":"note","message":{"text":"Concentrated knowledge decay: 151 of 185 significant files have no living knowledge, while the repository is still being changed at a low rate (11 commit(s) in the last 90 days) \u2014 so this is one repo-wide knowledge-decay state, not 151 separate risks. 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":"Largest orphaned file: One of the largest files with no living knowledge remaining \u2014 a reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/QueryCriteria.java"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13f266c94dcecee2a508b63edf94821fdf3e82782e45d009574c146e3c72a99a"}},{"ruleId":"D34","level":"note","message":{"text":"Largest orphaned file: One of the largest files with no living knowledge remaining \u2014 a reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/core/query/OptionsBuilder.java"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09e315bb4a7d633f360e8649d8dfd56ed6e6e01b7e844fb7e97e482cd84c80ad"}},{"ruleId":"D34","level":"note","message":{"text":"Largest orphaned file: One of the largest files with no living knowledge remaining \u2014 a reasonable place to start a read-through before the aggregate risk above bites."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/main/java/org/springframework/data/couchbase/config/AbstractCouchbaseConfiguration.java"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4de5ca45746769f0d92b24f0b6879290141ab3e8d70b446ec8f4a985020ba24e"}}],"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-1059","guid":"a2381a08-60f6-9554-a8b8-f3018cfaaca5","name":"Insufficient Technical Documentation","shortDescription":{"text":"Insufficient Technical Documentation"},"helpUri":"https://cwe.mitre.org/data/definitions/1059.html"},{"id":"CWE-1357","guid":"e4d2e772-757e-0a5c-bd7d-77052949d866","name":"Reliance on Insufficiently Trustworthy Component","shortDescription":{"text":"Reliance on Insufficiently Trustworthy Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1357.html"},{"id":"CWE-1395","guid":"800e09e7-c11a-8654-9fa6-86f398995fed","name":"Dependency on Vulnerable Third-Party Component","shortDescription":{"text":"Dependency on Vulnerable Third-Party Component"},"helpUri":"https://cwe.mitre.org/data/definitions/1395.html"},{"id":"CWE-259","guid":"ae9ad959-fbb6-9d5e-892d-3dca66da0b69","name":"Use of Hard-coded Password","shortDescription":{"text":"Use of Hard-coded Password"},"helpUri":"https://cwe.mitre.org/data/definitions/259.html"},{"id":"CWE-353","guid":"09d7e902-d4ee-f05d-ae6c-0a1554d0c18f","name":"CWE-353","shortDescription":{"text":"CWE-353"},"helpUri":"https://cwe.mitre.org/data/definitions/353.html"},{"id":"CWE-77","guid":"332c8ade-6612-9f56-a06b-d8d90b1a8750","name":"Command Injection","shortDescription":{"text":"Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/77.html"},{"id":"CWE-78","guid":"2e31ceaf-c7ae-2e5e-9661-cfb1362789cf","name":"OS Command Injection","shortDescription":{"text":"OS Command Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/78.html"},{"id":"CWE-79","guid":"fd45580b-e8c4-fc5e-8c2f-aa8fab0b4dbf","name":"Cross-site Scripting (XSS)","shortDescription":{"text":"Cross-site Scripting (XSS)"},"helpUri":"https://cwe.mitre.org/data/definitions/79.html"},{"id":"CWE-798","guid":"5e8f057d-fee3-995a-a0cb-9fc5b0d174d1","name":"Use of Hard-coded Credentials","shortDescription":{"text":"Use of Hard-coded Credentials"},"helpUri":"https://cwe.mitre.org/data/definitions/798.html"},{"id":"CWE-89","guid":"6d08fdad-37eb-c150-bbf0-d7d946863407","name":"SQL Injection","shortDescription":{"text":"SQL Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/89.html"},{"id":"CWE-937","guid":"16f316ae-415c-b354-a59b-1f7905f756e9","name":"Using Components with Known Vulnerabilities","shortDescription":{"text":"Using Components with Known Vulnerabilities"},"helpUri":"https://cwe.mitre.org/data/definitions/937.html"},{"id":"CWE-94","guid":"75e7f50c-6c2f-dd52-bf40-bf6c52b861fd","name":"Code Injection","shortDescription":{"text":"Code Injection"},"helpUri":"https://cwe.mitre.org/data/definitions/94.html"}]}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":7,"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."]}]}