alibaba/canal · error · UnsupportedOperationException

unsupported operation

Error message

unsupported operation

What it means

Error "unsupported operation" thrown in alibaba/canal.

Source

Thrown at client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/OuterAdapter.java:48

     * 往适配器中同步数据
     *
     * @param dmls 数据包
     */
    void sync(List<Dml> dmls);

    /**
     * 外部适配器销毁接口
     */
    void destroy();

    /**
     * Etl操作
     *
     * @param task 任务名, 对应配置名
     * @param params etl筛选条件
     */
    default EtlResult etl(String task, List<String> params) {
        throw new UnsupportedOperationException("unsupported operation");
    }

    /**
     * 计算总数
     *
     * @param task 任务名, 对应配置名
     * @return 总数
     */
    default Map<String, Object> count(String task) {
        throw new UnsupportedOperationException("unsupported operation");
    }

    /**
     * 通过task获取对应的destination
     *
     * @param task 任务名, 对应配置名
     * @return destination
     */

View on GitHub (pinned to 87be50e876)

Solutions

  1. This default method is intentionally unsupported; call the adapter-specific implementation (init/destroy/sync) instead of the base OuterAdapter method.
  2. Check you are invoking the operation on the concrete adapter instance, not through an unimplemented SPI default.

When it happens

Trigger: Thrown at client-adapter/common/src/main/java/com/alibaba/otter/canal/client/adapter/OuterAdapter.java:48 when the library encounters an invalid state.

Common situations: Base adapter method invoked that the concrete adapter does not implement. Keep the default throwing implementation so unsupported operations fail loudly instead of no-op.


AI-assisted analysis of alibaba/canal@87be50e876 (2026-08-14). Data as JSON: /api/errors/2623d94fab695a2b. Report an issue: GitHub.