binarywang/WxJava · error · WxRuntimeException

unsupported method

Error message

unsupported method

What it means

Thrown unconditionally by JedisDistributedLock.newCondition(). The lock implements the Lock interface but does not back a Condition, so requesting one raises WxRuntimeException('unsupported method').

Source

Thrown at weixin-java-common/src/main/java/me/chanjar/weixin/common/util/locks/JedisDistributedLock.java:73

  }

  @Override
  public boolean tryLock(long time, TimeUnit unit) throws InterruptedException {
    try (Jedis jedis = jedisPool.getResource()) {
      return lock.acquire(jedis);
    }
  }

  @Override
  public void unlock() {
    try (Jedis jedis = jedisPool.getResource()) {
      lock.release(jedis);
    }
  }

  @Override
  public Condition newCondition() {
    throw new WxRuntimeException("unsupported method");
  }

}

View on GitHub (pinned to 1c43293a3c)

Solutions

  1. Do not call newCondition() on this lock; use a different coordination primitive (e.g. a blocking queue, Redis pub/sub) for cross-node signaling.
  2. Gate code that needs conditions behind an instanceof check or a different Lock implementation.

Example fix

// before
Condition c = distributedLock.newCondition();
// after - use an in-JVM Lock for conditions, Redis for mutual exclusion
ReentrantLock local = new ReentrantLock();
Condition c = local.newCondition();
Defensive patterns

Strategy: validation

Validate before calling

if (lock instanceof JedisDistributedLock) {
  throw new UnsupportedOperationException("conditions unsupported");
}
Condition c = lock.newCondition();

Type guard

static boolean supportsCondition(Lock l) { return !(l instanceof JedisDistributedLock); }

Try / catch

null

Prevention

When it happens

Trigger: Calling lock.newCondition() on a JedisDistributedLock instance, e.g. via code that generically uses Lock.newCondition() for await/signal coordination.

Common situations: Generic concurrency utilities that assume every Lock supports conditions; porting in-process wait/notify patterns onto the distributed lock.

Related errors


AI-assisted analysis of binarywang/WxJava@1c43293a3c (2026-08-14). Data as JSON: /api/errors/8fba37c036913281. Report an issue: GitHub.