Java's CharsetDecoder Is Not Thread-Safe

Java’s CharsetDecoder is not thread-safe. Sharing a singleton instance across threads produces corrupted output, silent data loss, and service outages. Here’s how the race condition works and how to eliminate it.

July 14, 2025 · 6 min · Jake Genia