Skip to content

build(deps-dev): bump com.github.fppt:jedis-mock from 1.1.12 to 1.1.17 - #19962

Merged
FrankChen021 merged 2 commits into
masterfrom
dependabot/maven/com.github.fppt-jedis-mock-1.1.17
Aug 12, 2026
Merged

build(deps-dev): bump com.github.fppt:jedis-mock from 1.1.12 to 1.1.17#19962
FrankChen021 merged 2 commits into
masterfrom
dependabot/maven/com.github.fppt-jedis-mock-1.1.17

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 10, 2026

Copy link
Copy Markdown
Contributor

Bumps com.github.fppt:jedis-mock from 1.1.12 to 1.1.17.

Release notes

Sourced from com.github.fppt:jedis-mock's releases.

1.1.17

This release is about string and set command fidelity: four commands that were missing are implemented, and the argument parsing behind them was tightened.

🚀 New commands

🐞 Bug fixes

  • SET silently accepted unknown and conflicting options (#815): SET foo bar non-existing-option stored the value and replied OK.
  • SET ... NX/XX raised WRONGTYPE against a key of another type (#815). SET mylist v NX must reply nil and SET mylist v XX must replace the list with a string; both errored instead.
  • Integer arguments were parsed more leniently than Redis (#817). Redis uses string2ll, which rejects +1, 01, -0 and " 1".
  • Set commands did not check their argument count (#816): SADD, SCARD, SDIFF, SINTER, SISMEMBER, SMEMBERS, SMOVE, SPOP, SREM, SSCAN, SUNION and the *STORE variants now declare arity bounds and reply ERR wrong number of arguments for '<cmd>' command instead of accepting a malformed call.

🧪 Testing

  • Upstream native tests re-enabled: three GETEX cases in unit/expire.tcl, the GETRANGE blocks in unit/type/string.tcl, and all five SINTERCARD blocks in unit/type/set.tcl.

💼 Dependencies

  • org.redisson:redisson 4.6.1 → 4.7.0 (#814). Test scope only; the runtime dependencies are unchanged.

1.1.16

✨ Keyspace notifications

Jedis-Mock now emits keyspace notifications (#406, #809), so code that reacts to key changes — Spring Session's @EnableRedisIndexedHttpSession, cache invalidation listeners, Redisson objects with listeners — can be tested against the mock.

  • notify-keyspace-events is a real configuration parameter (#811). The flag string is parsed and validated instead of being stored verbatim, and CONFIG GET reports it back in Redis's canonical form (EgxgxE, KEAAKE). An unknown flag character is rejected with Redis's own message and leaves the previous value in place.
  • Both channel families are published: __keyspace@<db>__:<key> (K) and __keyevent@<db>__:<event> (E).
  • Event classes supported: g generic, x expired (#811), and $ string, l list, s set, h hash, z sorted set, t stream, n new-key (#812) — every class the mock can meaningfully support. See the new Keyspace notifications section in the README for the full event table and the remaining limitations.
  • Event names and orderings were established by probing redis:7.4-alpine and pinned with comparison tests, not inferred from command names — so the counter-intuitive ones are right: DECRBY reports incrby, ZINCRBY reports zincr, UNLINK reports del, HSETNX/HMSET report hset, a multi-element LPUSH reports one event, emptying a container adds a generic del, and new precedes the type's own event.
  • CLIENT REPLY ON|OFF|SKIP is implemented (#811). It used to be a no-op that returned +OK, which desynchronised clients. Suppression covers command replies and errors, never pub/sub pushes.

Not covered: the e (evicted), m (key-miss) and d (module) classes, xgroup-* events (the consumer-group commands are unimplemented), and events from background expiry — the mock expires keys lazily, so a key nobody touches produces its expired event later than a real server would.

🐞 Bug fixes

  • Pub/Sub was scoped to a database instead of the server (#810): a message published on db 0 was invisible to a subscriber on db 1. The subscription registries moved out of the per-database RedisBase into a server-wide SubscriptionRegistry, which also fixes two latent bugs — FLUSHDB/FLUSHALL used to wipe channel subscriptions (real Redis touches neither), and a client that issued SELECT after subscribing unsubscribed against the wrong database, leaking its registration.
  • SUBSCRIBE/PSUBSCRIBE framing did not match Redis (#810): multiple arguments produced a single flat array built from HashMap iteration — arbitrary order, duplicates collapsed, counter restarting at 1. Redis sends one three-element reply per argument, including duplicates, with the client's combined channel + pattern count. Jedis tolerated the old framing; stricter clients do not.
  • UNSUBSCRIBE/PUNSUBSCRIBE did not always reply (#810): no acknowledgement was sent for a channel the client was not subscribed to, and none at all when called without arguments while holding no subscriptions, so a client could wait forever for an ack that never came.
  • Disconnected clients stayed subscribed forever (#810), inflating PUBLISH receiver counts and PUBSUB NUMPAT for the lifetime of the server. Subscriptions are now released when the connection closes.
  • PING in subscribe mode returned a plain PONG instead of the RESP2 [pong, message-or-empty] array (#810).
  • PUBSUB NUMSUB is now implemented (#810).
  • SMOVE key key member destroyed and recreated the set (#812): Redis short-circuits when source and destination are the same key, but the mock ran SREM followed by SADD, so a single-member set was deleted and recreated. A data-correctness bug independent of notifications.
  • Six in-place mutations did not mark their key as modified (#812) — LINSERT, LSET, LREM, LTRIM, XDEL, XTRIM — so a transaction watching that key was not aborted. WATCH now behaves as it does on a real server for these commands.
  • ZRANGESTORE from a missing source left the destination silently deleted (#812): the early-return path skipped the deletion signalling. SETRANGE with a non-empty value now always counts as a write, matching Redis (#812).
  • An EVAL could be entered without the BUSY gate seeing it (#811): ScriptingManager.start() ran after the Lua environment was built, which on a cold EVAL takes hundreds of milliseconds. A command arriving on another connection in that window passed the BUSY check and then blocked on the data lock the script was about to take, with no way to ever be answered. Note that lua-time-limit now includes the environment setup time.
  • RedisServer.stop() and disconnect cleanup could block behind a long-running script (#811). The subscription registry guards itself with its own monitor, with lock ordering documented on the class.

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [com.github.fppt:jedis-mock](https://github.com/fppt/jedis-mock) from 1.1.12 to 1.1.17.
- [Release notes](https://github.com/fppt/jedis-mock/releases)
- [Commits](fppt/jedis-mock@v.1.1.12...v.1.1.17)

---
updated-dependencies:
- dependency-name: com.github.fppt:jedis-mock
  dependency-version: 1.1.17
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update Java code labels Aug 10, 2026

@FrankChen021 FrankChen021 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This review was performed by Codex GPT-5.6-Sol model.

@FrankChen021
FrankChen021 merged commit 63b4731 into master Aug 12, 2026
44 of 45 checks passed
@dependabot
dependabot Bot deleted the dependabot/maven/com.github.fppt-jedis-mock-1.1.17 branch August 12, 2026 01:46
@github-actions github-actions Bot added this to the 39.0.0 milestone Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area - Dependencies dependencies Pull requests that update a dependency file java Pull requests that update Java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant