Skip to content

[BUG] Property key case mismatch: "rpcExt" written vs "RpcExt" read — Dubbo rpcExt silently lost in ApiDoc ext JSON #6820

Description

@Aias00
  • Severity: Medium
  • Location:
    shenyu-client/shenyu-client-dubbo/shenyu-client-apache-dubbo/src/main/java/org/apache/shenyu/client/apache/dubbo/processor/extractor/DubboServiceProcessor.java:52,57 (writes "rpcExt"); shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/register/registrar/ApiDocRegistrarImpl.java:113 (reads "RpcExt"); shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/register/registrar/AbstractApiDocRegistrar.java:140 (reads "RpcExt")

Description:
DubboServiceProcessor writes the rpcExt property with key "rpcExt" (lowercase r). Both ApiDoc registrars read it with key "RpcExt" (uppercase R). java.util.Properties (extends Hashtable) is case-sensitive, so getPropertiesValue("RpcExt") returns null when the key stored is "rpcExt". The old path reads rpcExt from the MetaDataRegisterDTO object directly (metaData.getRpcExt()), so it works. The new-path registrars read from the Properties map where the case doesn't match.

Impact:
In the new registrar path, the ApiDoc ext JSON for Dubbo services has rpcExt: null instead of group/version/loadbalance/retries/timeout/cluster/serialization data.

Suggested fix:
Standardize on "rpcExt" (lowercase) in both writer and readers.

Confidence: High


Identified during the 2026-08-02 deep re-scan; full list in docs/scan2-2026-08-02/06-medium-tiers.md.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions