code: public static CharsetDecoder decoder(Charset charset) {
          checkNotNull(charset, "charset");
  
          Map<Charset, CharsetDecoder> map = InternalThreadLocalMap.get().charsetDecoderCache();
          CharsetDecoder d = map.get(charset);
          if (d != null) {
              d.reset().onMalformedInput(CodingErrorAction.REPLACE).onUnmappableCharacter(CodingErrorAction.REPLACE);
              return d;
          }
  
          d = decoder(charset, CodingErrorAction.REPLACE, CodingErrorAction.REPLACE);
          map.put(charset, d);
          return d;
      }
docs: Returns a cached thread-local {@link CharsetDecoder} for the specified {@link Charset}.
  
  @param charset The specified charset
  @return The decoder for the specified {@code charset}