• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Unleash / unleash-java-sdk / 39388992495
80%

Build:
DEFAULT BRANCH: main
Ran 20 Oct 2026 07:49AM UTC
Jobs 2
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Oct 2026 07:48AM UTC coverage: 80.162% (+0.6%) from 79.61%
39388992495

push

github

web-flow
perf: skip evaluation events nobody is subscribed to (#387)

* perf: skip evaluation events nobody is subscribed to

Every isEnabled/getVariant call enqueues a ToggleEvaluated task on the
shared UnleashScheduledExecutor, even when the configured subscriber
doesn't implement toggleEvaluated. The enqueue takes the executor's
queue lock, allocates a FutureTask plus queue and condition nodes and
wakes a worker, so all evaluating threads end up contending on one lock.

Every method on UnleashSubscriber is a default no-op, so EventDispatcher
can work out once, at construction, whether an event type reaches
anything: an event is skipped only when the subscriber inherits the
default for both on(UnleashEvent) and the specific callback that event
publishes to. Only ToggleEvaluated and ImpressionEvent are gated, every
other event type always dispatches, and anything that cannot be resolved
counts as overridden so no callback is ever silently dropped.

DefaultUnleash checks isSubscribedTo before constructing the event,
which also skips the UUID.randomUUID() in the ImpressionEvent
constructor.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* refactor: keep the subscription guard inside EventDispatcher

Drop the public isSubscribedTo so callers can't forget to check it.
Per-evaluation events now go through typed dispatch methods that take
the event's fields and only construct the event when something will
receive it, keeping the evaluation path allocation-free for events
nobody listens to.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Meemaw <matej.snuderl@opensea.io>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

397 of 570 branches covered (69.65%)

Branch coverage included in aggregate %.

30 of 32 new or added lines in 2 files covered. (93.75%)

1781 of 2147 relevant lines covered (82.95%)

6.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.55
-3.45% src/main/java/io/getunleash/event/EventDispatcher.java
Jobs
ID Job ID Ran Files Coverage
1 run-jvm-11 - 39388992495.1 20 Oct 2026 07:49AM UTC 95
80.15
GitHub Action Run
2 run-jvm-17 - 39388992495.2 20 Oct 2026 07:49AM UTC 95
78.43
GitHub Action Run
Source Files on build 39388992495
  • Tree
  • List 95
  • Changed 6
  • Source Changed 2
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #39388992495
  • 33c327b0 on github
  • Prev Build on main (#32834294951)
  • Next Build on main (#39396408550)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc