boundlessocean1 opened a new pull request, #7747:
URL: https://github.com/apache/shenyu/pull/7747

   Fixes #7704.
   
   Repeated identical upstream notifications caused `ShenyuNameResolver` to 
forget its last resolved list: the no-change branch returned an empty list, 
which the completion block saved as the current snapshot. The next identical 
notification then published a redundant resolution result.
   
   Retain the last resolved upstream list on the no-change branch. Add four 
regression tests using real `ApplicationConfigCache.handlerUpstream()` 
notifications and a synchronous executor. They cover repeated unchanged 
notifications and refreshes, real address changes, empty upstreams, and 
conversion errors followed by recovery. The production change is one line; 
existing no-server and error handling are preserved.
   
   ### Validation and pre-submission review
   
   - Before the fix: 4 new regression tests ran; 2 failed because `onResult` 
was invoked too often, while the empty/error recovery controls passed.
   - After the fix: `./mvnw -B -ntp -pl :shenyu-plugin-grpc -am clean install 
-Dmaven.javadoc.skip=true` passed across 16 modules with **933 tests, 0 
failures, 0 errors, 0 skipped**. All 4 new resolver tests passed.
   - Checkstyle: zero violations across the scoped reactor. Apache RAT: zero 
unapproved licenses. `git diff --check` passed.
   - Completed a local self-review before committing: checked 
notification/state transitions, unchanged address comparison semantics, 
empty/error recovery, shutdown guards, and test resource cleanup. No actionable 
findings remained. This is not a claim of independent or maintainer approval.
   - The full unrelated reactor and live gRPC E2E were not run; tests do not 
require an upstream service.
   
   Make sure that:
   
   - [x] You have read the [contribution 
guidelines](https://shenyu.apache.org/community/contributor-guide).
   - [x] You submit test cases (unit or integration tests) that back your 
changes.
   - [ ] Your local test passed `./mvnw clean install 
-Dmaven.javadoc.skip=true`. The affected module and its dependencies passed the 
scoped command above; the full reactor was not run.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to