mmodzelewski opened a new pull request, #4068: URL: https://github.com/apache/iggy/pull/4068
Non-ASCII names, keys, passwords and login metadata went out with a length prefix taken from String.length(), which counts UTF-16 code units, while the bytes that followed came from getBytes() in the platform default charset. Any character outside ASCII made the prefix disagree with the payload and the server misread the frame. The 255 cap on identifiers and message keys was also checked in characters, so a name under 255 chars but over 255 bytes overflowed the u8 prefix. Every wire string is now encoded as UTF-8 once and prefixed with the length of those bytes. Identifier and Partitioning validate the cap against the encoded length and Identifier.getSize reports it, so buffer sizing matches what is written. Message.of encodes its payload as UTF-8 explicitly instead of relying on the JVM default. Refs #4056 -- 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]
