apache / apache/shenyu

[BUG] DiscoveryUpstreamServiceImpl.importData silently writes null discoveryHandlerId

Open Beginner friendly
#6,695 1 comment 0 reactions 0 assignees View on GitHub
admin priority: medium type: bug
Dominant language
Java
Stars
8.8k
Forks
3.1k
Avg merge
7d 1h
Merged PRs (30d)
85

Description

- severity: Medium
- files: `shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/DiscoveryUpstreamServiceImpl.java:318-322`
- description: `discoveryUpstreamDTO.setDiscoveryHandlerId(discoveryHandlerIdMapping.get(...))` uses `Map.get`, which returns `null` when the source handler id was not in the import. The null is set on the DTO and `buildDiscoveryUpstreamDO` persists a row with a null `discoveryHandlerId` (or fails on an FK/not-null constraint, which combined with N7 partial-commits).
- impact: Orphan upstream rows that never link to a handler, or noisy insert failures mid-import.
- suggested_fix: If the mapping returns null, append to `errorMsgBuilder` and `continue` rather than inserting.
- confidence: Medium
- related_existing: none.

---
_Identified during the 2026-08-02 deep re-scan; full list in [`docs/scan2-2026-08-02/06-medium-tiers.md`](docs/scan2-2026-08-02/06-medium-tiers.md)._

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/DiscoveryUpstreamServiceImpl.java at lines 318-322 and trace importData through buildDiscoveryUpstreamDO. Check how missing discoveryHandlerId mappings are handled and how errorMsgBuilder is used. Done means missing mappings are reported and do not produce persisted orphan rows or partial-import failures.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, databases
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.