AI Slop Code Risk Monitor

apache/druid

SlopCodeMonitor badge for apache/druid Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Apache Druid: a high performance real-time analytics database.

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for apache/druid, a Java project with 14,092 GitHub stars. SynthScan examined 2,297,399 lines of code across 11466 source files, recording 567 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.0 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
14.1K
Stars
Java
Language
2.3M
Lines of Code
11.5K
Files
567
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 401 finding(s).

Hallucinated Dependency & Supply Chain Risk 3.6/100 · LOW

Are imports declared and package/API names verified? 158 finding(s).

Agent Over-Engineering Ratio 0.5/100 · LOW

Are wrappers, guards, and repeated structures necessary? 206 finding(s).

PR Review Velocity Impact 4.1/100 · LOW

Which changes need focused human review? 567 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 143HIGH 2MEDIUM 34LOW 388

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 567 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators143 hits · 1680 pts
SeverityFileLineSnippetContext
CRITICAL…rg/apache/druid/indexing/common/task/AbstractTask.java171 if (org.apache.commons.lang3.StringUtils.isNotBlank(errorMessage)) {CODE
CRITICAL…ommon/task/batch/parallel/PartialSegmentMergeTask.java185 org.apache.commons.io.FileUtils.deleteQuietly(persistDir);CODE
CRITICAL…ommon/task/batch/parallel/PartialSegmentMergeTask.java216 org.apache.commons.io.FileUtils.deleteQuietly(tempDir);CODE
CRITICAL…ommon/task/batch/parallel/PartialSegmentMergeTask.java225 final File partitionDir = org.apache.commons.io.FileUtils.getFile(CODE
CRITICAL…pache/druid/indexing/common/tasklogs/FileTaskLogs.java136 org.apache.commons.io.FileUtils.forceDelete(file);CODE
CRITICAL…rg/apache/druid/indexing/worker/WorkerTaskManager.java346 org.apache.commons.io.FileUtils.cleanDirectory(tmpDir);CODE
CRITICAL…exing/worker/shuffle/LocalIntermediaryDataManager.java198 for (File eachFile : org.apache.commons.io.FileUtils.listFiles(supervisorTaskDir, null, true)) {CODE
CRITICAL…exing/worker/shuffle/LocalIntermediaryDataManager.java287 org.apache.commons.io.FileUtils.forceDelete(taskTempDir);CODE
CRITICAL…exing/worker/shuffle/LocalIntermediaryDataManager.java347 org.apache.commons.io.FileUtils.deleteQuietly(destFile);CODE
CRITICAL…exing/worker/shuffle/LocalIntermediaryDataManager.java408 for (File eachFile : org.apache.commons.io.FileUtils.listFiles(supervisorTaskPath, null, true)) {CODE
CRITICAL…exing/worker/shuffle/LocalIntermediaryDataManager.java416 org.apache.commons.io.FileUtils.forceDelete(supervisorTaskPath);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java352 org.apache.hive.common.util.BloomKFilter.build(1500);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java355 org.apache.hive.common.util.BloomKFilter.serialize(byteArrayOutputStream, hiveFilter);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java369 org.apache.hive.common.util.BloomKFilter.build(1500);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java373 org.apache.hive.common.util.BloomKFilter.serialize(byteArrayOutputStream, hiveFilter);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java388 org.apache.hive.common.util.BloomKFilter.build(1500);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java392 org.apache.hive.common.util.BloomKFilter.serialize(byteArrayOutputStream, hiveFilter);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java406 org.apache.hive.common.util.BloomKFilter.build(1500);CODE
CRITICAL…/org/apache/druid/query/filter/BloomDimFilterTest.java410 org.apache.hive.common.util.BloomKFilter.serialize(byteArrayOutputStream, hiveFilter);CODE
CRITICAL…org/apache/druid/data/input/parquet/ParquetReader.java90 reader = closer.register(org.apache.parquet.hadoop.ParquetReader.builder(new GroupReadSupport(), path)CODE
CRITICAL…org/apache/druid/storage/s3/ObjectSummaryIterator.java182 * Adapted from org.jets3t.service.model.StorageObject.isDirectoryPlaceholder(). Does not include the check forCOMMENT
CRITICAL…src/main/java/org/apache/druid/storage/s3/S3Utils.java467 if (org.apache.commons.lang3.StringUtils.isNotEmpty(endpointUrl)) {CODE
CRITICAL…src/main/java/org/apache/druid/storage/s3/S3Utils.java491 if (org.apache.commons.lang3.StringUtils.isEmpty(endpointUrl)) {CODE
CRITICAL…src/main/java/org/apache/druid/storage/s3/S3Utils.java502 if (org.apache.commons.lang3.StringUtils.isEmpty(proxyConfig.getHost())) {CODE
CRITICAL…src/main/java/org/apache/druid/storage/s3/S3Utils.java513 if (org.apache.commons.lang3.StringUtils.isNotEmpty(proxyConfig.getUsername())) {CODE
CRITICAL…src/main/java/org/apache/druid/storage/s3/S3Utils.java516 if (org.apache.commons.lang3.StringUtils.isNotEmpty(proxyConfig.getPassword())) {CODE
CRITICAL…e/druid/storage/s3/output/RetryableS3OutputStream.java244 org.apache.commons.io.FileUtils.forceDelete(chunkStorePath);CODE
CRITICAL…g/apache/druid/storage/hdfs/HdfsDataSegmentKiller.java105 org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL…org/apache/druid/inputsource/hdfs/HdfsInputSource.java160 final String[] splitPaths = org.apache.hadoop.util.StringUtils.split(inputPath);CODE
CRITICAL…druid/k8s/overlord/taskadapter/K8sTaskAdapterTest.java367 Mockito.when(mockTestLogs.streamTaskPayload("ID")).thenReturn(com.google.common.base.Optional.of(CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java460 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java463 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format("-Ddruid.port=%d", DruidK8sConstants.PORT));CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java464 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java468 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java474 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL⚡…che/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java478 javaOpts.add(org.apache.druid.java.util.common.StringUtils.format(CODE
CRITICAL…urity/kerberos/DruidKerberosAuthenticationHandler.java155 .substring(org.apache.hadoop.security.authentication.client.KerberosAuthenticator.NEGOTIATE.length())CODE
CRITICAL…apache/druid/storage/azure/AzureDataSegmentPusher.java113 boolean prefixIsNullOrEmpty = org.apache.commons.lang3.StringUtils.isEmpty(prefix);CODE
CRITICAL…apache/druid/segment/serde/cell/RandomStringUtils.java40 return org.apache.commons.lang3.RandomStringUtils.random(length, 0, 0, true, true, null, random);CODE
CRITICAL…apache/druid/segment/serde/cell/RandomStringUtils.java47 return org.apache.commons.lang3.RandomStringUtils.random(length, 0, 0, true, true, null, random);CODE
CRITICAL…ache/druid/collections/spatial/ImmutableRTreeTest.java677 org.junit.jupiter.api.Assertions.assertEquals(Bytes.asList(bytes1), Bytes.asList(bytes2));CODE
CRITICAL…ache/druid/collections/spatial/ImmutableRTreeTest.java702 org.junit.jupiter.api.Assertions.assertTrue(((FluentIterable) points).toList().size() == 100);CODE
CRITICAL⚡…test/java/org/apache/druid/indexer/TaskStatusTest.java32 + "\tat org.apache.druid.indexing.common.task.AbstractBatchIndexTask.tryTimeChunkLock(AbstractBatchIndexTask.java:CODE
CRITICAL⚡…test/java/org/apache/druid/indexer/TaskStatusTest.java33 + "\tat org.apache.druid.indexing.common.task.batch.parallel.PartialHashSegmentGenerateTask.isReady(PartialHashSegCODE
CRITICAL⚡…test/java/org/apache/druid/indexer/TaskStatusTest.java34 + "\tat org.apache.druid.indexing.overlord.TaskQueue.manageInternalCritical(TaskQueue.java:420) [druid-indexing-seCODE
CRITICAL⚡…test/java/org/apache/druid/indexer/TaskStatusTest.java35 + "\tat org.apache.druid.indexing.overlord.TaskQueue.manageInternal(TaskQueue.java:373) [druid-indexing-service-20CODE
CRITICAL⚡…test/java/org/apache/druid/indexer/TaskStatusTest.java36 + "\tat org.apache.druid.indexing.overlord.TaskQueue.manage(TaskQueue.java:356) [druid-indexing-service-2024.03.0-CODE
CRITICAL…test/java/org/apache/druid/indexer/TaskStatusTest.java47 + "\tat org.apache.druid.indexing.common.task.AbstractBatchIndexTask.tryTimeChunkLock(AbstractBatchIndexTask.java:CODE
CRITICAL…test/java/org/apache/druid/indexer/TaskStatusTest.java48 + "\tat org.apache.druid.indexing.common.task.batch.parallel.PartialHashSegmentGenerateTask.isReady(PartialHashSegCODE
CRITICAL⚡…/java/org/apache/druid/java/util/common/Stopwatch.java37 return new Stopwatch(com.google.common.base.Stopwatch.createStarted());CODE
CRITICAL⚡…/java/org/apache/druid/java/util/common/Stopwatch.java42 return new Stopwatch(com.google.common.base.Stopwatch.createUnstarted());CODE
CRITICAL⚡…/java/org/apache/druid/java/util/common/Stopwatch.java47 return new Stopwatch(com.google.common.base.Stopwatch.createStarted(ticker));CODE
CRITICAL…/java/org/apache/druid/java/util/common/FileUtils.java88 com.google.common.io.Files.asByteSink(outFile),CODE
CRITICAL…/java/org/apache/druid/java/util/common/FileUtils.java524 org.apache.commons.io.FileUtils.deleteDirectory(directory);CODE
CRITICAL…apache/druid/query/search/FragmentSearchQuerySpec.java88 if (!org.apache.commons.lang3.StringUtils.containsIgnoreCase(dimVal, search)) {CODE
CRITICAL…apache/druid/query/search/ContainsSearchQuerySpec.java71 return org.apache.commons.lang3.StringUtils.containsIgnoreCase(dimVal, value);CODE
CRITICAL…va/org/apache/druid/query/expression/ContainsExpr.java99 return s -> org.apache.commons.lang3.StringUtils.containsIgnoreCase(s, searchString);CODE
CRITICAL…/main/java/org/apache/druid/data/input/TextReader.java139 if (com.google.common.base.Strings.isNullOrEmpty(parsedLine.get(i))) {CODE
CRITICAL…erver/coordination/SegmentManagerThreadSafetyTest.java220 org.apache.commons.io.FileUtils.copyDirectory(sourceFile, dir);CODE
CRITICAL…org/apache/druid/server/log/FileRequestLoggerTest.java94 com.google.common.io.Files.asCharSink(oldLogFile, StandardCharsets.UTF_8).write("testOldLogContent");CODE
83 more matches not shown…
Hyper-Verbose Identifiers198 hits · 204 pts
SeverityFileLineSnippetContext
LOW…worker/shuffle/DeepStorageIntermediaryDataManager.java37public class DeepStorageIntermediaryDataManager implements IntermediaryDataManagerCODE
LOW…exing/worker/shuffle/LocalIntermediaryDataManager.java86public class LocalIntermediaryDataManager implements IntermediaryDataManagerCODE
LOW…g/apache/druid/security/basic/CommonCacheNotifier.java208 private static class ResponseHandler implements HttpResponseHandler<StatusResponseHolder, StatusResponseHolder>CODE
LOW…urity/kerberos/RetryIfUnauthorizedResponseHandler.java29public class RetryIfUnauthorizedResponseHandler<Intermediate, Final>CODE
LOW…e/druid/java/util/http/client/NettyHttpClientTest.java55 private static class ThrowingResponseHandler implements HttpResponseHandler<Object, Object>CODE
LOW…ache/druid/segment/nested/StructuredDataProcessor.java33public abstract class StructuredDataProcessorCODE
LOW…l/http/client/response/InputStreamResponseHandler.java31public class InputStreamResponseHandler implements HttpResponseHandler<AppendableByteArrayInputStream, InputStream>CODE
LOW…lient/response/SequenceInputStreamResponseHandler.java49public class SequenceInputStreamResponseHandler implements HttpResponseHandler<InputStream, InputStream>CODE
LOW…il/http/client/response/StringFullResponseHandler.java31public class StringFullResponseHandlerCODE
LOW…tp/client/response/InputStreamFullResponseHandler.java30public class InputStreamFullResponseHandler implements HttpResponseHandler<InputStreamFullResponseHolder, InputStreamFulCODE
LOW…http/client/response/ObjectOrErrorResponseHandler.java32public class ObjectOrErrorResponseHandler<IntermediateType, FinalType>CODE
LOW…a/util/http/client/response/StatusResponseHandler.java25public class StatusResponseHandler implements HttpResponseHandler<StatusResponseHolder, StatusResponseHolder>CODE
LOW…til/http/client/response/BytesFullResponseHandler.java30public class BytesFullResponseHandler implements HttpResponseHandler<BytesFullResponseHolder, BytesFullResponseHolder>CODE
LOW…che/druid/frame/file/FrameFileHttpResponseHandler.java48public class FrameFileHttpResponseHandler implements HttpResponseHandler<FrameFilePartialFetch, FrameFilePartialFetch>CODE
LOWdistribution/bin/generate-binary-notice.py35def normalize_module_for_output(module):CODE
LOWdistribution/bin/find-missing-backports.py28def extract_pr_title_from_commit_message(commit_msg):CODE
LOWdistribution/bin/find-missing-backports.py36def extract_pr_numbers_from_commit_message(commit_msg):CODE
LOWdistribution/bin/generate-binary-license.py47def normalize_module_for_output(module):CODE
LOWdistribution/bin/generate-binary-license.py151def print_license_name_underbar(license_name):CODE
LOWdistribution/bin/check-licenses.py235def build_compatible_license_names():CODE
LOW⚡distribution/bin/test_check_licenses.py45 def test_registered_under_released_module(self):CODE
LOW⚡distribution/bin/test_check_licenses.py48 def test_unregistered_is_missing(self):CODE
LOW⚡distribution/bin/test_check_licenses.py51 def test_registered_only_under_excluded_module_is_missing_when_shipped(self):CODE
LOW⚡distribution/bin/test_check_licenses.py54 def test_registered_only_under_excluded_module_is_fine_when_not_shipped(self):CODE
LOW⚡distribution/bin/test_check_licenses.py57 def test_skipped_dependency_is_not_missing(self):CODE
LOW⚡distribution/bin/test_check_licenses.py68 def test_reported_by_released_module(self):CODE
LOW⚡distribution/bin/test_check_licenses.py71 def test_reported_only_by_excluded_modules_is_ignored(self):CODE
LOW⚡distribution/bin/test_check_licenses.py74 def test_reported_by_released_and_excluded_modules(self):CODE
LOW⚡distribution/bin/test_check_licenses.py77 def test_known_and_unspecified_licenses_are_ignored(self):CODE
LOW⚡distribution/bin/test_check_licenses.py81 def test_skipped_dependency_is_ignored(self):CODE
LOW⚡distribution/bin/test_check_licenses.py86 def test_maps_report_dirs_to_module_tags(self):CODE
LOW⚡distribution/bin/test_check_licenses.py117 def test_updates_only_the_version_line_when_all_libraries_moved(self):CODE
LOW⚡distribution/bin/test_check_licenses.py125 def test_does_not_split_documents_at_indented_dashes(self):CODE
LOW⚡distribution/bin/test_check_licenses.py130 def test_keeps_quotes_and_does_not_quote_versions_that_look_like_numbers(self):CODE
LOW⚡distribution/bin/test_check_licenses.py139 def test_leaves_current_entries_alone(self):CODE
LOW⚡distribution/bin/test_check_licenses.py143 def test_flags_libraries_that_moved_to_different_versions(self):CODE
LOW⚡distribution/bin/test_check_licenses.py147 def test_flags_entries_where_only_some_libraries_moved(self):CODE
LOW⚡distribution/bin/test_check_licenses.py151 def test_updates_the_same_library_in_every_module(self):CODE
LOW⚡distribution/bin/test_check_licenses.py176 def test_updates_an_entry_whose_old_version_only_ships_in_another_module(self):CODE
LOW⚡distribution/bin/test_check_licenses.py184 def test_leaves_entries_whose_library_is_only_reported_at_another_entry_version(self):CODE
LOW⚡distribution/bin/test_check_licenses.py191 def test_takes_a_version_an_entry_of_another_module_registers(self):CODE
LOW⚡distribution/bin/test_check_licenses.py203 def test_flags_entries_of_one_module_that_move_to_the_same_version(self):CODE
LOW⚡distribution/bin/test_check_licenses.py210 def test_flags_moved_entries_with_libraries_in_no_report(self):CODE
LOW⚡distribution/bin/test_check_licenses.py214 def test_flags_moved_entries_with_libraries_another_entry_registers(self):CODE
LOW⚡distribution/bin/test_check_licenses.py221 def test_flags_a_library_with_several_new_versions(self):CODE
LOW⚡distribution/bin/test_check_licenses.py225 def test_prefers_the_version_reported_in_the_entry_module(self):CODE
LOW⚡distribution/bin/test_check_licenses.py233 def test_skips_flagged_entries_and_modules_without_a_report(self):CODE
LOW⚡distribution/bin/test_check_licenses.py260 def test_known_license_is_normalized(self):CODE
LOW⚡distribution/bin/test_check_licenses.py263 def test_unknown_license_is_unset_and_its_name_is_kept(self):CODE
LOW⚡distribution/bin/test_check_licenses.py266 def test_unknown_license_is_fine_when_another_license_is_known(self):CODE
LOW⚡distribution/bin/test_check_licenses.py269 def test_gpl_only_license_is_unset(self):CODE
LOW⚡distribution/bin/test_check_licenses.py272 def test_gpl_license_does_not_override_a_compatible_one(self):CODE
LOW⚡distribution/bin/test_check_licenses.py275 def test_known_license_mentioning_gpl_is_normalized(self):CODE
LOW⚡distribution/bin/test_check_licenses.py278 def test_separators_are_not_license_names(self):CODE
LOW⚡distribution/bin/test_check_licenses.py281 def test_unspecified_license_is_kept(self):CODE
LOW⚡distribution/bin/test_check_licenses.py284 def test_first_compatible_license_is_kept(self):CODE
LOW⚡distribution/bin/test_check_licenses.py289 def test_every_normalized_name_is_a_name(self):CODE
LOW⚡distribution/bin/test_check_licenses.py295 def test_versions_that_look_like_numbers_are_loaded_as_strings(self):CODE
LOW⚡distribution/bin/test_check_licenses.py299 def test_booleans_are_still_loaded_as_booleans(self):CODE
LOWdistribution/bin/test_check_licenses.py163 def test_does_not_take_a_version_another_entry_registers(self):CODE
138 more matches not shown…
Over-Commented Block123 hits · 122 pts
SeverityFileLineSnippetContext
LOW.lgtm.yml1# Licensed to the Apache Software Foundation (ASF) under one or moreCOMMENT
LOWrewrite.yml1# Licensed to the Apache Software Foundation (ASF) under one or moreCOMMENT
LOWupload.sh1#!/bin/bash -eCOMMENT
LOWlicenses.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…/druid/indexing/common/task/CompactionTaskRunBase.java841COMMENT
LOW…/druid/indexing/common/task/CompactionTaskRunBase.java961 {COMMENT
LOW…a/org/apache/druid/indexing/overlord/OverlordMode.java21COMMENT
LOW…druid/indexing/overlord/hrtr/HttpRemoteTaskRunner.java1141 ).emit();COMMENT
LOW…dexing/common/task/batch/parallel/TombstoneHelper.java221 // Generate a tombstone interval covering eternity.COMMENT
LOW…xing/seekablestream/SeekableStreamIndexTaskRunner.java181 private final ConcurrentMap<PartitionIdType, SequenceOffsetType> currOffsets = new ConcurrentHashMap<>();COMMENT
LOW…/query/aggregation/histogram/ApproximateHistogram.java1541COMMENT
LOW…segment/nested/NestedFieldColumnIndexSupplierTest.java1781 // 10 rowsCOMMENT
LOW…aggregation/ExpressionLambdaAggregatorFactoryTest.java1061 // string because fold type equals finalized type, even though merge type is arrayCOMMENT
LOW…/druid/segment/PartialQueryableIndexCursorFactory.java181 runDownloads.add(submitRunFetch(bundle.bundleName(), fetch, holdRelease));COMMENT
LOW…rg/apache/druid/guice/GuiceAnnotationIntrospector.java121 * while {Value.forIgnoredProperties("")} for {@code injected} because the later does not have {@code JsonProperty}.COMMENT
LOW…va/org/apache/druid/concurrent/TaskThreadPriority.java21COMMENT
LOW…apache/druid/query/context/QueryContextParameters.java61/// {@link org.apache.druid.query.context.docs.ParameterDocumentationGenerator} generates a table rowCOMMENT
LOW…ava/org/apache/druid/query/groupby/GroupingEngine.java241 final String timestampResultField = queryContext.get(QueryContextParameters.TIMESTAMP_RESULT_FIELD);COMMENT
LOW…ruid/query/groupby/epinephelinae/ParallelCombiner.java61 * ParallelCombiner builds a combining tree which asynchronously aggregates input entries. Each node of the combiningCOMMENT
LOW…ruid/query/groupby/epinephelinae/ParallelCombiner.java321 final List<CloseableIterator<Entry<KeyType>>> childIteratorsOfNextLevel = new ArrayList<>();COMMENT
LOW…uid/query/groupby/epinephelinae/HashVectorGrouper.java421 * into them.COMMENT
LOWpublications/radstack/src/druid_tables.R221 ylab("Cluster Scan Rate (billion rows/sec.)")COMMENT
LOWpublications/whitepaper/src/druid_tables.R221 ylab("Cluster Scan Rate (billion rows/sec.)")COMMENT
LOWwebsite/mise.toml1#COMMENT
LOWdistribution/docker/druid.sh1#!/bin/shCOMMENT
LOWdistribution/docker/druid.sh21COMMENT
LOWdistribution/docker/deduplicate_jars.sh1#!/bin/bashCOMMENT
LOWdistribution/docker/docker-compose.yml1#COMMENT
LOWdistribution/docker/peon.sh1#!/bin/shCOMMENT
LOWdistribution/docker/peon.sh21COMMENT
LOWdistribution/bin/generate-binary-notice.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/get-milestone-prs.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/build-textfile-readme.sh1#!/bin/bashCOMMENT
LOWdistribution/bin/find-missing-backports.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/jar-notice-lister.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/web-console-dep-lister.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/generate-binary-license.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/generate-license-dependency-reports.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/refresh-license-versions.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/get-milestone-contributors.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/make-linkable-release-notes.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/check-licenses.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/test_check_licenses.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/tag-missing-milestones.py1#!/usr/bin/env python3COMMENT
LOWdistribution/bin/licenses_yaml.py1#!/usr/bin/env python3COMMENT
LOW…metadata/IndexerSQLMetadataStorageCoordinatorTest.java3261 maxVersion,COMMENT
LOW…/segment/loading/PartialSegmentMetadataCacheEntry.java141COMMENT
LOW…che/druid/server/coordinator/duty/CompactSegments.java361 // the flag is null, or it is false. It is needed when it is null to avoid theCOMMENT
LOW…/development/extensions-contrib/spectator-histogram.md141The result of the aggregation is a histogram that is built by ingesting numeric values fromCOMMENT
LOW…rg/apache/druid/msq/exec/MSQCompactionTaskRunTest.java341 )COMMENT
LOW…rg/apache/druid/msq/exec/MSQCompactionTaskRunTest.java361 // four rows in hour 02:COMMENT
LOW…rg/apache/druid/msq/indexing/error/MSQErrorReport.java221 @Nullable final ColumnMappings columnMappingsCOMMENT
LOWhooks/install-hooks.sh1#!/bin/bash -euCOMMENT
LOWhooks/uninstall-hooks.sh1#!/bin/bash -euCOMMENT
LOWhooks/run-all-in-dir.py1#!/usr/bin/env python3COMMENT
LOWexamples/bin/broker.sh1#!/bin/bash -euCOMMENT
LOWexamples/bin/jconsole.sh1#!/bin/bashCOMMENT
LOWexamples/bin/router.sh1#!/bin/bash -euCOMMENT
LOWexamples/bin/node.sh1#!/bin/bash -euCOMMENT
LOWexamples/bin/overlord.sh1#!/bin/bash -euCOMMENT
63 more matches not shown…
Self-Referential Comments12 hits · 40 pts
SeverityFileLineSnippetContext
MEDIUMdistribution/docker/deduplicate_jars.sh46 # This file is a duplicate, replace it with a symlink to the canonical fileCOMMENT
MEDIUM⚡…edded-tests/tls/generate-server-certs-and-keystores.sh74# Create a Java keystore containing the generated certificate in PKCS12 formatCOMMENT
MEDIUM⚡…edded-tests/tls/generate-server-certs-and-keystores.sh77# Create a Java truststore with the druid test cluster root CACOMMENT
MEDIUM⚡…edded-tests/tls/generate-server-certs-and-keystores.sh83# Create the CRLCOMMENT
MEDIUM…d-tests/tls/generate-incorrect-hostname-client-cert.sh53# Create a Java keystore containing the generated certificateCOMMENT
MEDIUM…d-tests/tls/generate-valid-intermediate-client-cert.sh92# Create a Java keystore containing the generated certificateCOMMENT
MEDIUM…tests/tls/generate-invalid-intermediate-client-cert.sh92# Create a Java keystore containing the generated certificateCOMMENT
MEDIUMembedded-tests/tls/generate-expired-client-cert.sh125# Create a Java keystore containing the generated certificateCOMMENT
MEDIUMembedded-tests/tls/generate-good-client-cert.sh57# Create a Java keystore containing the generated certificateCOMMENT
MEDIUMembedded-tests/tls/generate-good-client-cert.sh61# Create a Java truststore with the druid test cluster root CACOMMENT
MEDIUM…bedded-tests/tls/generate-to-be-revoked-client-cert.sh59# Create a Java keystore containing the generated certificateCOMMENT
MEDIUM…edded-tests/tls/generate-untrusted-root-client-cert.sh57# Create a Java keystore containing the generated certificateCOMMENT
AI Slop Vocabulary11 hits · 33 pts
SeverityFileLineSnippetContext
MEDIUM…eekablestream/supervisor/SeekableStreamSupervisor.java2539 // seamless schema migration.COMMENT
MEDIUM…che/druid/storage/google/GoogleSegmentRangeReader.java121 // range successfully, which shouldn't happen in practice. Returning empty keeps us robust either way.COMMENT
MEDIUM…/org/apache/druid/storage/s3/S3SegmentRangeReader.java126 // range successfully, which shouldn't happen in practice. Returning empty keeps us robust either way.COMMENT
MEDIUM…pache/druid/storage/azure/AzureSegmentRangeReader.java133 // range successfully, which shouldn't happen in practice. Returning empty keeps us robust either way.COMMENT
MEDIUM…java/org/apache/druid/frame/processor/SuperSorter.java593 // Definitely the penultimate level. Channels per merger may be less than maxChannelsPerMerger.COMMENT
MEDIUM…g/apache/druid/timeline/VersionedIntervalTimeline.java70 * #lookup} because they are overshadowed by some other object. This can be used in conjunction with the {@link #add}COMMENT
MEDIUMdistribution/bin/check-licenses.py453 # Build a dictionary to facilitate comparing reported licenses and registered ones.COMMENT
MEDIUMweb-console/src/utils/sampler.ts688 // The Druid expressions are very close to SQL so try parsing them as SQL, if it parses then this is a more robust wayCOMMENT
MEDIUM…ole/src/druid-models/ingestion-spec/ingestion-spec.tsx473 // This does not match the type of IngestionSpec but this dialog is robust enough to deal with anything but spec musCOMMENT
MEDIUM…odules/grouping-table-module/grouping-table-module.tsx45// when ordering on non __time is more robustCOMMENT
MEDIUMweb-console/src/helpers/execution/sql-task-execution.ts186 // This whole catch block is a hack, and we should make the detail route more robustCOMMENT
Verbosity Indicators16 hits · 33 pts
SeverityFileLineSnippetContext
LOW…sql/HllSketchApproxCountDistinctUtf8SqlAggregator.java40 * Currently undocumented. Only accepts strings, not sketches. The purpose of this function is to allow us to experimentCOMMENT
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java275 // Step 1: Parse properties to JsonNode (tree model)COMMENT
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java278 // Step 2: If we have JSON labels or annotations, merge them into the treeCOMMENT
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java287 // Step 3: Deserialize the tree to final config objectCOMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java310 // Step 1: Ensure there is a pending row.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java320 // Step 2: Fold in subsequent rows with the same sort key.COMMENT
LOW…g/apache/druid/frame/processor/FrameChannelMerger.java337 // Step 3: Check whether the pending row crosses a partition boundary.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java350 // Step 4: Flush the completed group to the frame writer.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java355 // Step 5: Check the row limit.COMMENT
LOW…ava/org/apache/druid/query/groupby/GroupingEngine.java981 // cardinality. We need to check if a virtual column exists with the same name, since virtual columns can shadowCOMMENT
LOW…y/groupby/epinephelinae/collection/HashTableUtils.java111 * The purpose of this function is to be faster than {@link Memory#equalTo} for the small memory ranges thatCOMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java289 // Step 1: Issue the query asynchronously.COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java293 // Step 2: Get the report.COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java319 // Step 3: Cancel the queryCOMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java323 // Step 4: Wait for the sqlQuery/time metric to be emitted (signals query completion)COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java330 // Step 5: Fetch the report again - should now be in FAILED stateCOMMENT
Structural Annotation Overuse14 hits · 30 pts
SeverityFileLineSnippetContext
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java275 // Step 1: Parse properties to JsonNode (tree model)COMMENT
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java278 // Step 2: If we have JSON labels or annotations, merge them into the treeCOMMENT
LOW⚡…d/k8s/overlord/MultipleKubernetesTaskRunnerConfig.java287 // Step 3: Deserialize the tree to final config objectCOMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java310 // Step 1: Ensure there is a pending row.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java320 // Step 2: Fold in subsequent rows with the same sort key.COMMENT
LOW…g/apache/druid/frame/processor/FrameChannelMerger.java337 // Step 3: Check whether the pending row crosses a partition boundary.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java350 // Step 4: Flush the completed group to the frame writer.COMMENT
LOW⚡…g/apache/druid/frame/processor/FrameChannelMerger.java355 // Step 5: Check the row limit.COMMENT
LOW…uid/server/http/security/ResourceFilterTestHelper.java200 // Step 3 - Merge all the Objects arrays for each endpointsCOMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java289 // Step 1: Issue the query asynchronously.COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java293 // Step 2: Get the report.COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java319 // Step 3: Cancel the queryCOMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java323 // Step 4: Wait for the sqlQuery/time metric to be emitted (signals query completion)COMMENT
LOW⚡…id/testing/embedded/msq/EmbeddedDartReportApiTest.java330 // Step 5: Fetch the report again - should now be in FAILED stateCOMMENT
Fake / Example Data14 hits · 16 pts
SeverityFileLineSnippetContext
LOW…egment/loading/HdfsFileTimestampVersionFinderTest.java52 private static String pathContents = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor iCODE
LOW…egment/loading/HdfsFileTimestampVersionFinderTest.java52 private static String pathContents = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor iCODE
LOW…ache/druid/storage/hdfs/HdfsDataSegmentPullerTest.java56 private static String pathContents = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor iCODE
LOW…ache/druid/storage/hdfs/HdfsDataSegmentPullerTest.java56 private static String pathContents = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor iCODE
LOW…/org/apache/druid/segment/ConcatenatingCursorTest.java117 new Object[]{"placeholder"}CODE
LOW…/org/apache/druid/segment/ConcatenatingCursorTest.java172 new Object[]{"placeholder"}CODE
LOW…ruid/segment/vector/ConcatenatingVectorCursorTest.java125 new Object[]{"placeholder"}CODE
LOW…ruid/segment/vector/ConcatenatingVectorCursorTest.java180 new Object[]{"placeholder"}CODE
LOW⚡…enchmark/query/SqlMultiValueStringFilterBenchmark.java207 "Foo", "placeholder",CODE
LOW⚡…enchmark/query/SqlMultiValueStringFilterBenchmark.java208 "Bar", "placeholder",CODE
LOW⚡…enchmark/query/SqlMultiValueStringFilterBenchmark.java209 "Baz", "placeholder"CODE
LOW…g/embedded/server/EmbeddedBrokerDynamicConfigTest.java235 .set(BrokerDynamicConfig.CONFIG_KEY, config, new AuditInfo("test", "test@test.com", "Testing", "127.0.0.1CODE
LOW…s/WhiteListBasedDruidToTimelineEventConverterTest.java137 new ServiceMetricEvent.Builder().setDimension("id", "dummy_id")CODE
LOW…ruid/emitter/graphite/WhiteListBasedConverterTest.java144 new ServiceMetricEvent.Builder().setDimension("id", "dummy_id")CODE
Modern AI Meta-Vocabulary8 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUM…apache/druid/query/context/QueryContextParameters.java289 See [Broker configuration](../configuration/index.md#broker) and [subquery guardrails](../configuration/inSTRING
MEDIUM…apache/druid/query/context/QueryContextParameters.java309 See [Broker configuration](../configuration/index.md#broker) and [subquery guardrails](../configuration/inSTRING
MEDIUMdocs/operations/metrics.md84|`subquery/bytes`|Number of bytes materialized by the subquery's results. This metric is only emitted if the query uses CODE
MEDIUMdocs/operations/metrics.md84|`subquery/bytes`|Number of bytes materialized by the subquery's results. This metric is only emitted if the query uses CODE
MEDIUMdocs/release-info/migr-subquery-limit.md64- [Broker configuration reference](../configuration#guardrails-for-materialization-of-subqueries) for more information oCODE
MEDIUMdocs/querying/sql-window-functions.md236#### Window frame guardrailsCOMMENT
MEDIUMdocs/querying/query-context-reference.md60|`maxSubqueryRows`| `druid.server.http.maxSubqueryRows` | Upper limit on the number of rows a subquery can generate. SeeCODE
MEDIUMdocs/querying/query-context-reference.md61|`maxSubqueryBytes`| `druid.server.http.maxSubqueryBytes` | Upper limit on the number of bytes a subquery can generate. CODE
Deep Nesting12 hits · 12 pts
SeverityFileLineSnippetContext
LOWdistribution/bin/generate-binary-notice.py46CODE
LOWdistribution/bin/generate-binary-license.py91CODE
LOWdistribution/bin/generate-binary-license.py176CODE
LOWdistribution/bin/refresh-license-versions.py76CODE
LOWdistribution/bin/make-linkable-release-notes.py33CODE
LOWdistribution/bin/check-licenses.py428CODE
LOWdistribution/bin/check-licenses.py452CODE
LOWdistribution/bin/check-licenses.py61CODE
LOWdistribution/bin/check-licenses.py192CODE
LOWexamples/bin/start-druid-main.py249CODE
LOWexamples/bin/start-druid-main.py391CODE
LOWexamples/bin/start-druid-main.py547CODE
Excessive Try-Catch Wrapping7 hits · 9 pts
SeverityFileLineSnippetContext
LOWdistribution/bin/get-milestone-prs.py78 except Exception as e:CODE
MEDIUMdistribution/bin/jar-notice-lister.py89 print("Error while grabbing NOTICE file: " + jar_file)CODE
LOWdistribution/bin/generate-license-dependency-reports.py44 except Exception as e:CODE
LOWdistribution/bin/tag-missing-milestones.py69 except Exception as e:CODE
LOWexamples/bin/start-druid-main.py385 except Exception:CODE
LOWexamples/bin/start-druid-main.py408 except Exception:CODE
MEDIUMexamples/bin/start-druid-main.py391def convert_total_memory_string(memory):CODE
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/development/extensions-core/datasketches-hll.md71 It is very common to use `HLLSketchBuild` in combination with [rollup](../../ingestion/rollup.md) to create a [metric](CODE
Empty Error Handlers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHexamples/bin/start-druid-main.py385except Exception:CODE
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWdistribution/docker/deduplicate_jars.sh24# Check if an argument is providedCOMMENT
LOWdistribution/docker/deduplicate_jars.sh41 # Check if this is the first occurrence of this fileCOMMENT
LOW…-contrib/druid-opa-authorizer/example/ldap/run-ldap.sh20# Check if the bootstrap.ldif file exists on the hostCOMMENT
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOW…/org/apache/druid/segment/join/table/IndexedTable.java75 * {@link #rowSignature()}. Don't forget to close your {@link Reader} when finished reading, to clean up anyCOMMENT
MEDIUM…/org/apache/druid/msq/util/MultiStageQueryContext.java921 " Please use [%s] key in the context parameter and use one of the TaskLock types as mentioned earlier or "CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/scripts/static-checks-maven.sh36# TODO: consider adding pmd:cpd-checkCOMMENT
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ke-extensions/src/test/resources/create_delta_table.py21CODE