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

   Fixes #7471
   
   ### Problem
   
   - Editing an existing TCP proxy selector's `forwardPort` or `props` updates 
the database, but Admin only publishes upstream changes.
   - The TCP handler and factory also skip existing selector names without 
comparing listener configuration.
   
   ### Impact
   
   The gateway continues listening on the old port with the old properties 
after an Admin update. This affects existing TCP proxy selectors; upstream 
changes can still take effect independently.
   
   ### Changes
   
   - Publish `PROXY_SELECTOR/UPDATE` after the Admin transaction commits.
   - Cache listener configuration and skip updates only when the port and 
properties match. Treat null properties as empty configuration.
   - Recreate changed listeners while preserving upstream data. Start the 
replacement first for port changes; release the old listener first for 
same-port property changes and restore its configuration on startup failure.
   - Serialize lifecycle operations for the same selector while allowing 
different selectors to proceed independently.
   - Add focused coverage for transaction commit/rollback, subscriber-driven 
port replacement, property updates, and both update failure paths. Preserve 
existing concurrency and creation-retry regressions.
   
   ### Validation
   
   - All 37 targeted tests passed, with zero failures, errors, or skipped tests.
   - Checkstyle passed with zero violations.
   - Full `clean install` passed.
   
   ### Checklist
   
   Make sure that:
   
   - [x] You have read the [[contribution 
guidelines](https://shenyu.apache.org/community/contributor-guide)](https://shenyu.apache.org/community/contributor-guide).
   - [x] You submit test cases (unit or integration tests) that back your 
changes.
   - [x] Your local test passed `./mvnw clean install 
-Dmaven.javadoc.skip=true`.
   


-- 
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