Program: 28371
Project: 28371
Buggy source:
/** 
 * 注册默认转换器
 * @return 转换器
 */
private ConverterRegistry defaultConverter(){
  defaultConverter=new ConcurrentHashMap<>();
  defaultConverter.put(byte.class,new PrimitiveConverter(byte.class));
  defaultConverter.put(short.class,new PrimitiveConverter(short.class));
  defaultConverter.put(int.class,new PrimitiveConverter(int.class));
  defaultConverter.put(long.class,new PrimitiveConverter(long.class));
  defaultConverter.put(float.class,new PrimitiveConverter(float.class));
  defaultConverter.put(double.class,new PrimitiveConverter(double.class));
  defaultConverter.put(char.class,new PrimitiveConverter(char.class));
  defaultConverter.put(boolean.class,new PrimitiveConverter(boolean.class));
  defaultConverter.put(String.class,new StringConverter());
  defaultConverter.put(Boolean.class,new BooleanConverter());
  defaultConverter.put(Character.class,new CharacterConverter());
  defaultConverter.put(Number.class,new NumberConverter());
  defaultConverter.put(Byte.class,new NumberConverter(Byte.class));
  defaultConverter.put(Short.class,new NumberConverter(Short.class));
  defaultConverter.put(Integer.class,new NumberConverter(Integer.class));
  defaultConverter.put(Long.class,new NumberConverter(Long.class));
  defaultConverter.put(Float.class,new NumberConverter(Float.class));
  defaultConverter.put(Double.class,new NumberConverter(Double.class));
  defaultConverter.put(BigDecimal.class,new NumberConverter(BigDecimal.class));
  defaultConverter.put(BigInteger.class,new NumberConverter(BigInteger.class));
  defaultConverter.put(Integer[].class,new ArrayConverter<Integer>(Integer.class));
  defaultConverter.put(Long[].class,new ArrayConverter<Long>(Long.class));
  defaultConverter.put(Byte[].class,new ArrayConverter<Byte>(Byte.class));
  defaultConverter.put(Short[].class,new ArrayConverter<Short>(Short.class));
  defaultConverter.put(Float[].class,new ArrayConverter<Float>(Float.class));
  defaultConverter.put(Double[].class,new ArrayConverter<Double>(Double.class));
  defaultConverter.put(Boolean[].class,new ArrayConverter<Boolean>(Boolean.class));
  defaultConverter.put(Character[].class,new ArrayConverter<Character>(Character.class));
  defaultConverter.put(String[].class,new ArrayConverter<String>(String.class));
  defaultConverter.put(byte[].class,new ByteArrayConverter());
  defaultConverter.put(short[].class,new ShortArrayConverter());
  defaultConverter.put(int[].class,new IntArrayConverter());
  defaultConverter.put(long[].class,new LongArrayConverter());
  defaultConverter.put(float[].class,new FloatArrayConverter());
  defaultConverter.put(double[].class,new DoubleArrayConverter());
  defaultConverter.put(boolean[].class,new BooleanArrayConverter());
  defaultConverter.put(char[].class,new CharArrayConverter());
  defaultConverter.put(URI.class,new URIConverter());
  defaultConverter.put(URL.class,new URLConverter());
  defaultConverter.put(Calendar.class,new CalendarConverter());
  defaultConverter.put(Date.class,new DateConverter());
  defaultConverter.put(DateTime.class,new DateTimeConverter());
  defaultConverter.put(java.sql.Date.class,new SqlDateConverter());
  defaultConverter.put(java.sql.Time.class,new SqlTimeConverter());
  defaultConverter.put(java.sql.Timestamp.class,new SqlTimestampConverter());
  defaultConverter.put(Class.class,new ClassConverter());
  defaultConverter.put(TimeZone.class,new TimeZoneConverter());
  defaultConverter.put(Charset.class,new CharsetConverter());
  defaultConverter.put(Path.class,new PathConverter());
  return this;
}

Fixed version (ground truth):
/** 
 * 注册默认转换器
 * @return 转换器
 */
private ConverterRegistry defaultConverter(){
  defaultConverterMap=new ConcurrentHashMap<>();
  defaultConverterMap.put(byte.class,new PrimitiveConverter(byte.class));
  defaultConverterMap.put(short.class,new PrimitiveConverter(short.class));
  defaultConverterMap.put(int.class,new PrimitiveConverter(int.class));
  defaultConverterMap.put(long.class,new PrimitiveConverter(long.class));
  defaultConverterMap.put(float.class,new PrimitiveConverter(float.class));
  defaultConverterMap.put(double.class,new PrimitiveConverter(double.class));
  defaultConverterMap.put(char.class,new PrimitiveConverter(char.class));
  defaultConverterMap.put(boolean.class,new PrimitiveConverter(boolean.class));
  defaultConverterMap.put(String.class,new StringConverter());
  defaultConverterMap.put(Boolean.class,new BooleanConverter());
  defaultConverterMap.put(Character.class,new CharacterConverter());
  defaultConverterMap.put(Number.class,new NumberConverter());
  defaultConverterMap.put(Byte.class,new NumberConverter(Byte.class));
  defaultConverterMap.put(Short.class,new NumberConverter(Short.class));
  defaultConverterMap.put(Integer.class,new NumberConverter(Integer.class));
  defaultConverterMap.put(Long.class,new NumberConverter(Long.class));
  defaultConverterMap.put(Float.class,new NumberConverter(Float.class));
  defaultConverterMap.put(Double.class,new NumberConverter(Double.class));
  defaultConverterMap.put(BigDecimal.class,new NumberConverter(BigDecimal.class));
  defaultConverterMap.put(BigInteger.class,new NumberConverter(BigInteger.class));
  defaultConverterMap.put(Integer[].class,new ArrayConverter<Integer>(Integer.class));
  defaultConverterMap.put(Long[].class,new ArrayConverter<Long>(Long.class));
  defaultConverterMap.put(Byte[].class,new ArrayConverter<Byte>(Byte.class));
  defaultConverterMap.put(Short[].class,new ArrayConverter<Short>(Short.class));
  defaultConverterMap.put(Float[].class,new ArrayConverter<Float>(Float.class));
  defaultConverterMap.put(Double[].class,new ArrayConverter<Double>(Double.class));
  defaultConverterMap.put(Boolean[].class,new ArrayConverter<Boolean>(Boolean.class));
  defaultConverterMap.put(Character[].class,new ArrayConverter<Character>(Character.class));
  defaultConverterMap.put(String[].class,new ArrayConverter<String>(String.class));
  defaultConverterMap.put(byte[].class,new ByteArrayConverter());
  defaultConverterMap.put(short[].class,new ShortArrayConverter());
  defaultConverterMap.put(int[].class,new IntArrayConverter());
  defaultConverterMap.put(long[].class,new LongArrayConverter());
  defaultConverterMap.put(float[].class,new FloatArrayConverter());
  defaultConverterMap.put(double[].class,new DoubleArrayConverter());
  defaultConverterMap.put(boolean[].class,new BooleanArrayConverter());
  defaultConverterMap.put(char[].class,new CharArrayConverter());
  defaultConverterMap.put(URI.class,new URIConverter());
  defaultConverterMap.put(URL.class,new URLConverter());
  defaultConverterMap.put(Calendar.class,new CalendarConverter());
  defaultConverterMap.put(Date.class,new DateConverter());
  defaultConverterMap.put(DateTime.class,new DateTimeConverter());
  defaultConverterMap.put(java.sql.Date.class,new SqlDateConverter());
  defaultConverterMap.put(java.sql.Time.class,new SqlTimeConverter());
  defaultConverterMap.put(java.sql.Timestamp.class,new SqlTimestampConverter());
  defaultConverterMap.put(Class.class,new ClassConverter());
  defaultConverterMap.put(TimeZone.class,new TimeZoneConverter());
  defaultConverterMap.put(Charset.class,new CharsetConverter());
  defaultConverterMap.put(Path.class,new PathConverter());
  return this;
}