Skip to content

Add stream-key auto-conversion for ByteRecord #3204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dodu232
Copy link

@dodu232 dodu232 commented Aug 19, 2025

Add automatic type conversion logic in StreamRecords.ofBytes() method to handle different stream key types safely. This resolves the TODO comment and prevents ClassCastException when using String or ByteBuffer stream keys without RedisTemplate.

Supported conversions:

  • String to byte[] using UTF-8 encoding
  • ByteBuffer to byte[] by copying buffer contents
  • byte[] passed through unchanged
  • null values handled gracefully
  • Unsupported types throw IllegalArgumentException with clear message

The implementation follows the same pattern as the existing ofBuffer() method for consistency. This improvement enhances developer experience when working directly with Redis connections instead of RedisTemplate, particularly useful for performance-critical scenarios or custom serialization requirements.

Added comprehensive test coverage including edge cases and error handling to ensure robust behavior across all supported input types.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Aug 19, 2025
Add automatic type conversion logic in StreamRecords.ofBytes() method
to handle different stream key types safely. This resolves the TODO
comment and prevents ClassCastException when using String or ByteBuffer
stream keys without RedisTemplate.

Supported conversions:
- String to byte[] using UTF-8 encoding
- ByteBuffer to byte[] by copying buffer contents
- byte[] passed through unchanged
- null values handled gracefully
- Unsupported types throw IllegalArgumentException with clear message

The implementation follows the same pattern as the existing ofBuffer()
method for consistency. This improvement enhances developer experience
when working directly with Redis connections instead of RedisTemplate,
particularly useful for performance-critical scenarios or custom
serialization requirements.

Added comprehensive test coverage including edge cases and error
handling to ensure robust behavior across all supported input types.

Signed-off-by: Seo Bo Gyeong <dodu7510@gmail.com>
@dodu232 dodu232 force-pushed the feature/stream-key-auto-conversion branch from 7bcc594 to acc8ed6 Compare August 20, 2025 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: waiting-for-triage An issue we've not yet triaged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants