apache/druid · error · UnsupportedOperationException

BloomFilterAggregator does not support getLong()

Error message

BloomFilterAggregator does not support getLong()

What it means

Sentinel guard in BaseBloomFilterAggregator: getLong() is never implemented because the aggregated value is a BloomFilter object, not a long. The exception fires when something requests the bloom-filter metric through the primitive long accessor — typically a misconfigured query or downstream consumer expecting a numeric metric.

Solutions

  1. Use get() to obtain the BloomFilter and apply the bloom filter test filter/post-aggregator instead
  2. Ensure the aggregator is not referenced as a long-typed metric in queries or alerts
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:153 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/druid@9b90983fd2 (2026-09-07). Data as JSON: /api/errors/2fe2842936f7cde6. Report an issue: GitHub.

Appendix: source

Thrown at extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/aggregation/bloom/BaseBloomFilterAggregator.java:153

  }

  @Nullable
  @Override
  public Object get()
  {
    return collector;
  }

  @Override
  public float getFloat()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getFloat()");
  }

  @Override
  public long getLong()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getLong()");
  }

  @Override
  public double getDouble()
  {
    throw new UnsupportedOperationException("BloomFilterAggregator does not support getDouble()");
  }

  @Override
  public void close()
  {
    // nothing to close
  }

  @Override
  public void inspectRuntimeShape(RuntimeShapeInspector inspector)
  {
    inspector.visit("selector", selector);

View on GitHub (pinned to 9b90983fd2)