Aias00 opened a new issue, #6852: URL: https://github.com/apache/shenyu/issues/6852
## Description The CONNECT payload's will fields are dropped on the floor; nothing stores a will (module-wide grep for `willMessage|willTopic|cleanSession|hasWill` returns zero hits), `Disconnect` never publishes one, and there is no `channelInactive`/ungraceful-close hook that would fire a will on a dropped connection. ## Location - `shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Connect.java` (connect method never reads will fields) - `shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/Disconnect.java:39` (`// todo Last words`) - `shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/MqttTransportHandler.java:42-44` (empty `operationComplete`) ## Impact Clients that publish a Last Will during CONNECT never have it delivered on an ungraceful disconnect, defeating a core reliability feature of MQTT. ## Suggested fix Parse and store will fields in `MqttContext`/session on CONNECT; on `channelInactive` for a non-clean session with a will, publish the will message with its configured QoS/retain; clear the will on graceful DISCONNECT. -- 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]
