{"record":{"id":"26b34b269b2a2f10","repo":"apache/druid","slug":"bloomfilteraggregator-does-not-support-getdouble","errorCode":null,"errorMessage":"BloomFilterAggregator does not support getDouble()","messagePattern":"BloomFilterAggregator does not support getDouble\\(\\)","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java","lineNumber":128,"sourceCode":"    return resultCopy;\n  }\n\n  @Override\n  public float getFloat(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"BloomFilterAggregator does not support getFloat()\");\n  }\n\n  @Override\n  public long getLong(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"BloomFilterAggregator does not support getLong()\");\n  }\n\n  @Override\n  public double getDouble(ByteBuffer buf, int position)\n  {\n    throw new UnsupportedOperationException(\"BloomFilterAggregator does not support getDouble()\");\n  }\n\n  @Override\n  public void aggregate()\n  {\n    aggregate(collector, 0);\n  }\n\n  @Nullable\n  @Override\n  public Object get()\n  {\n    return collector;\n  }\n\n  @Override\n  public float getFloat()\n  {","sourceCodeStart":110,"sourceCodeEnd":146,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java#L110-L146","documentation":"The bloom filter aggregators produce a BloomFilter object, not a numeric value, so getDouble() is an explicitly unsupported sentinel that always throws UnsupportedOperationException. It fires only when a caller (query engine or downstream code) attempts to read the bloom-filter metric through the primitive double accessor.","triggerScenarios":"Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:128 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the bloom filter via get() and use BloomKFilter-specific post-aggregators (e.g. bloom filter test) instead of numeric accessors","Do not declare this aggregator where a double/float/long value is expected"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}