Hutool Versions Save

🍬A set of tools that keep Java sweet.

5.8.27

1 month ago

5.8.27(2024-03-29)

🐣新特性

  • 【extra 】 FreemarkerEngine修改默认版本参数
  • 【db 】 增加达梦数据库方言(pr#1178@Gitee)
  • 【core 】 HexUtil#format方法增加prefix参数(issue#I93PU9@Gitee)
  • 【core 】 StrUtil.replace歧义,修改为replaceByCodePoint(issue#I96LWH@Gitee)
  • 【core 】 FileUtil和PathUtil增加Resource重载(issue#I97FJT@Gitee)
  • 【core 】 优化ThreadUtil.safeSleep,使用System.nanoTime()(issue#I9BMGK@Gitee)
  • 【db 】 新增数据库Wrapper支持反解(pr#1192@Gitee)
  • 【core 】 新增RFC2822日期格式解析支持(issue#I9C2D4@Gitee)

🐞Bug修复

  • 【core 】 修复PathMover对目标已存在且只读文件报错错误问题(issue#I95CLT@Gitee)
  • 【json 】 修复JSONUtil序列化和反序列化预期的结果不一致问题(pr#3507@Github)
  • 【http 】 修复CVE-2022-22885,HttpGlobalConfig可选关闭信任host(issue#2042@Github)
  • 【core 】 修复DateUtil.betweenYear闰年2月问题(issue#I97U3J@Gitee)
  • 【captcha】 修复Graphics2D的资源没释放问题(issue#I98PYN@Gitee)
  • 【core 】 修复ClassUtil.getTypeArgument() 获取泛型存在null问题(issue#3516@Github)
  • 【core 】 修复图片操作未调用flush导致资源未释放问题(issue#I9C7NA@Gitee)
  • 【cron 】 修复cron中在小月时使用“L”的计算问题(pr#1189@Gitee)

5.8.26

2 months ago

5.8.26(2024-02-10)

🐣新特性

  • 【db 】 RedisDS增加user支持(issue#I8XEQ4@Gitee)
  • 【core 】 MapUtil增加partition方法(pr#1170@Gitee)
  • 【core 】 增加Version类(issue#I8Z3VE@Gitee)

🐞Bug修复

  • 【crypto】 修复BouncyCastleProvider导致graalvm应用报错UnsupportedFeatureError(pr#3464@Github)
  • 【http 】 修复UserAgentUtil对QQ浏览器识别问题(issue#I8X5XQ@Gitee)
  • 【core 】 修复BeanToMapCopier获取类型数组越界问题(issue#3468@Github)
  • 【extra 】 修复SshjSftpSession关闭导致的问题(issue#3472@Github)
  • 【http 】 修复HtmlUtil.removeHtmlAttr处理空格问题(issue#I8YV0K@Gitee)
  • 【core 】 修复CollUtil.containsAll在coll2长度大于coll1时逻辑歧义问题(issue#I8Z2Q4@Gitee)
  • 【poi 】 修复当sheetName 不存在时,ExcelUtil.getReader方法不会释放文件问题(issue#I8ZIQC@Gitee)
  • 【crypto】 通过添加系统属性hutool.crypto.decodeHex强制关闭hex识别以解决hex和Base64歧义问题(issue#I90M9D@Gitee)
  • 【core 】 修复VersionComparator违反传递问题(issue#I8Z3VE@Gitee)

5.8.25

3 months ago

5.8.25(2024-01-11)

🐣新特性

  • 【core 】 WatchServer新增通过Path获取WatchKey方法(pr#1145@Gitee)
  • 【core 】 CopyOptions中增加setAutoTransCamelCase方法(issue#3452@Github)
  • 【captcha】 验证码生成器增加构造方法,可自定义随机数字符集(pr#1147@Gitee)

🐞Bug修复

  • 【core 】 修复StrJoin当append内容后调用length()会出现空指针问题(issue#3444@Github)
  • 【core 】 修复PostgreSQL、H2使用upsert字段大小写问题(issue#I8PB4X@Gitee)
  • 【core 】 修复RandomUtil.randomInt,RandomUtil.randomLong边界问题(pr#3450@Github)
  • 【db 】 修复Druid连接池无法设置部分属性问题(issue#I8STFC@Gitee)
  • 【core 】 修复金额转换为英文时缺少 trillion 单位问题(pr#3454@Github)
  • 【json 】 增加ParseConfig,通过增加maxNestingDepth参数避免StackOverflowError问题,修复CVE-2022-45688漏洞(issue#2748@Github)
  • 【system】 修复UserInfo中用户名加/问题(pr#3458@Github)
  • 【core 】 修复NumberUtil.toBigDecimal方法报StackOverflowError(CVE-2023-51080)(issue#3423@Github)

5.8.24

4 months ago

5.8.24(2023-12-23)

🐣新特性

  • 【cache 】 Cache增加get重载,可自定义超时时间(issue#I8G0DL@Gitee)
  • 【cache 】 JWT#sign增加重载,可选是否增加默认的typ参数(issue#3386@Github)
  • 【db 】 增加识别OpenGauss的驱动类(issue#I8K6C0@Gitee)
  • 【core 】 修复CharSequenceUtil注释和引用,避免循环引用
  • 【extra 】 SpringUtil增加getProperty重载(pr#1122@Gitee)
  • 【core 】 FileTypeUtil增加null判断(issue#3419@Github)
  • 【core 】 DateUtil.parse支持毫秒时间戳(issue#I8NMP7@Gitee)
  • 【extra 】 优化TokenizerEngine使用IK分词器支持并发(pr#3427@Github)
  • 【core 】 Opt.ofEmptyAble支持更多类型(issue#I8OOSY@Gitee)
  • 【http 】 HTMLFilter保留p标签(issue#3433@Gitee)

🐞Bug修复

  • 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee)
  • 【http 】 修复RootAction send404 抛异常问题(pr#1107@Gitee)
  • 【extra 】 修复Archiver 最后一个 Entry 为空文件夹时未关闭 Entry问题(pr#1123@Gitee)
  • 【core 】 修复ImgUtil.convert png转jpg在jdk9+中失败问题(issue#I8L8UA@Gitee)
  • 【cache 】 修复StampedCache的get方法非原子问题(issue#I8MEIX@Gitee)
  • 【core 】 修复StrSplitter.splitByRegex使用空参数导致的OOM问题(issue#3421@Github)
  • 【db 】 修复嵌套SQL中order by子句错误截断问题(issue#I89RXV@Gitee)
  • 【http 】 修复graalvm编译后,未读取Content-Length可能导致的读取时间过长问题(issue#I6Q30X@Gitee)
  • 【core 】 修复JavaSourceCompiler.addSource目录处理错误问题(issue#3425@Github)
  • 【core 】 修复时间戳转Bean时异常问题(issue#I8NMP7@Gitee)
  • 【core 】 修复PostgreSQL使用upsert字段大小写问题问题(issue#I8PB4X@Gitee)
  • 【extra 】 修复TinyPinyinEngine可能的空指针问题(issue#3437@Github)
  • 【core 】 修复graalvm原生打包使用http工具被转为file协议问题(issue#I8PY3Y@Gitee)
  • 【poi 】 修复cloneSheet参数错误导致非XSSFWorkbook错误命名问题(issue#I8QIBB@Gitee)

5.8.23

5 months ago

5.8.23(2023-11-12)

🐣新特性

  • 【json 】 改进TemporalAccessorSerializer支持dayOfMonth和month枚举名(issue#I82AM8@Gitee)
  • 【core 】 新增ProxySocketFactory
  • 【http 】 UserAgent增加百度浏览器识别(issue#I847JY@Gitee)
  • 【core 】 ReflectUtil.getFieldsValue增加Filter重载(pr#1090@Gitee)
  • 【core 】 Snowflake增加方法:根据传入时间戳,计算ID起终点(pr#1096@Gitee)
  • 【core 】 PathUtil增加loopFiles重载,可选是否追踪软链(issue#3353@Github)

🐞Bug修复

  • 【cron 】 修复Cron表达式range解析错误问题(issue#I82CSH@Gitee)
  • 【core 】 修复VersionComparator在极端数据排序时候违反了自反性问题(issue#I81N3H@Gitee)
  • 【json 】 修复JSONStrFormatter:format函数对于转义符号处理逻辑错误问题(issue#I84V6I@Gitee)
  • 【core 】 修复特定情况下BiMap覆盖Value后,仍能通过旧Value查询到Key问题(issue#I88R5M@Gitee)
  • 【core 】 修复aop的afterException无法生效问题(issue#3329@Github)
  • 【core 】 修复TypeUtil.getClass方法强转报错问题(pr#1092@Github)
  • 【core 】 修复DataSize.parse(size)不支持空格问题(issue#I88Z4Z@Gitee)
  • 【http 】 修复SimpleServer在添加的HttpFilter中有获取请求参数时报错问题(issue#3343@Github)
  • 【http 】 修复options请求无响应体问题
  • 【core 】 ImgUtil的sliceByRowsAndCols背景无法透明问题(issue#3347@Github)
  • 【core 】 修复ClassUtil#scanJar未正确关闭文件问题(issue#3361@Github)
  • 【db 】 修复Column.getDigit返回值错误问题(issue#3370@Github)
  • 【core 】 修复合成注解在并发环境无法保证正确缓存属性值的问题(pr#1097@Gitee)
  • 【core 】 修复CollectorUtil.reduceListMap与collectors.groupby一起使用时出现与预期不符问题(pr#1102@Gitee)

5.8.22

7 months ago

5.8.22(2023-09-13)

🐣新特性

  • 【core 】 NumberUtil.nullToZero增加重载(issue#I7PPD2@Gitee)
  • 【core 】 DesensitizedUtil增加清空策略(issue#I7PUJ2@Gitee)
  • 【all 】 修改异常包装策略:运行时异常不包装,只包装非运行时异常(issue#I7RJZT@Gitee)
  • 【core 】 增加IJSONTypeConverter,避免反射调用(pr#1051@Gitee)
  • 【http 】 优化HttpUtil.urlWithForm方法(pr#1052@Gitee)
  • 【http 】 优化HttpUtil.urlWithForm方法(pr#1052@Gitee)
  • 【cron 】 优化PatternParser支持年的步进(issue#I7SMP7@Gitee)
  • 【core 】 TreeUtil增加getParentsId方法(issue#I7TDCF@Gitee)

🐞Bug修复

  • 【core 】 修复NumberUtil.toBigDecimal转换科学计数法问题(issue#3241@Github)
  • 【core 】 修复PathUtil.moveContent当target不存在时会报错问题(issue#3238@Github)
  • 【db 】 修复SqlUtil.formatSql 格式化的sql换行异常(pr#3247@Github)
  • 【core 】 修复DateUtil.parse 给定一个时间解析错误问题(issue#I7QI6R@Gitee)
  • 【core 】 去除默认的ACCEPT_LANGUAGE(issue#3258@Github)
  • 【core 】 修复FieldsComparator比较结果不正确问题(issue#3259@Github)
  • 【core 】 修复Db.findAll全局忽略大小写无效问题(issue#I7T30Y@Gitee)
  • 【core 】 修复Ipv4Util.getEndIpLong 取反符号导致数据越界(issue#I7U1OQ@Gitee)
  • 【http 】 修复302重定向时,Location中的问号被转义问题(issue#3265@Github)
  • 【core 】 修复CombinationAnnotationElement判断循环问题(pr#3267@Github)
  • 【core 】 修复StrUtil#containsAny NPE问题(pr#1063@Gitee)
  • 【all 】 修复SONArray的add()方法抛出OutOfMemory异常问题(issue#3286@Github)
  • 【core 】 修复fillColumns空指针问题(issue#3284@Github)
  • 【core 】 修复Convert不能转换Optional和Opt问题(issue#I7WJHH@Gitee)
  • 【core 】 修复DateUtil.age年龄计算问题(issue#I7XMYW@Gitee)
  • 【core 】 修复JSONUtil.parse()溢出问题(issue#3289@Github)
  • 【core 】 修复Tailer stop NPE问题(pr#1067@Gitee)
  • 【json 】 修复toJSONString导致CPU使用率高的问题(issue#3297@Github)
  • 【core 】 修复NumberUtil.parseInt 16进制解析错误的问题(pr#1071@Gitee)
  • 【core 】 修复CopyOptions.setIgnoreCase和setIgnoreProperties冲突问题(issue#I80FP4@Gitee)
  • 【core 】 修复LocalDateTimeUtil.of 某些特殊TemporalAccessor无法返回正确结果的问题(issue#3301@Github)

5.8.21

8 months ago

5.8.21(2023-07-29)

🐣新特性

  • 【core 】 list 为空时,CollUtil.max等返回null而非异常(pr#1027@Gitee)
  • 【poi 】 ExcelReader.getWriter逻辑变更,当从非文件读取时,获取sheet,而非空表格。
  • 【core 】 Ipv4Util 新增方法:检测指定 IP 地址是否匹配通配符(pr#3171@Github)
  • 【core 】 DateUtil.parse适配6位毫秒格式(issue#I7H34N@Gitee)
  • 【core 】 RandomUtil增加可选是否包含边界的重载(issue#3182@Github)
  • 【core 】 StrUtil增加truncateByByteLength方法(pr#3176@Github)
  • 【core 】 身份证工具类isValidCard18、isValidCard15入参null直接返回null(pr#1034@Gitee)
  • 【http 】 使用multiparty方式支持body参数(issue#3158@Github)
  • 【core 】 ZipReader增加setMaxSizeDiff方法,自定义或关闭ZipBomb(issue#3018@Github)
  • 【db 】 Query.of(entity)构建时传入fields(issue#I7M5JU@Gitee)
  • 【db 】 clickhouse驱动名称变更为com.clickhouse.jdbc.ClickHouseDriver(issue#3224@Github)
  • 【core 】 UrlResource增加size方法(issue#3226@Github)

🐞Bug修复

  • 【core 】 修复MapUtil工具使用filter方法构造传入参数结果问题(issue#3162@Github)
  • 【core 】 修复序列化和反序列化Class问题(issue#I7FQ29@Gitee)
  • 【setting】 修复utf8-bom的setting文件读取问题(issue#I7G34E@Gitee)
  • 【core 】 修复PathUtil.getMimeType可能造成的异常(issue#3179@Github)
  • 【core 】 修复Pair序列化转换无效问题(issue#I7GPGX@Github)
  • 【core 】 修复TypeUtil.getTypeArgument对实现接口获取不全面问题(issue#I7CRIW@Gitee)
  • 【core 】 修复BeanUtil.isCommonFieldsEqual判空导致的问题
  • 【extra 】 修复CompressUtil.createArchiver 将文件压缩为tgz时文件名规则无效问题(issue#I7LLL7@Gitee)
  • 【core 】 修复脱敏银行卡号长度bug(pr#3210@Github)
  • 【jwt 】 修复JWTSignerUtil中ES256签名不符合规范问题(issue#3205@Github)
  • 【core 】 修复UserInfo获取country问题(issue#I7MCKW@Gitee)
  • 【extra 】 修复MVEL加载错误问题(issue#3214@Github)
  • 【json 】 修复JSONBeanParser在遇到List时没有被正确递归问题(issue#I7M2GZ@Gitee)
  • 【core 】 修复VersionComparator对1.0.3及1.0.2a比较有误的问题(pr#1043@Gitee)
  • 【core 】 修复IOS系统下,chrome 浏览器的解析规则有误(pr#1044@Gitee)
  • 【extra 】 修复多线程下Sftp中Channel关闭的问题(issue#I7OHIB@Gitee)
  • 【extra 】 修复CVE-2023-24163漏洞(issue#I6AJWJ@Gitee)

5.8.20

10 months ago

5.8.20(2023-06-16)

🐣新特性

  • 【core 】 UrlQuery增加setStrict方法,区分是否严格模式(issue#I78PB1@Gitee)
  • 【poi 】 添加系列方法writeCol,以支持按列输出(pr#1003@Gitee)
  • 【core 】 CollUtil新增anyMatch和allMatch方法(pr#1008@Gitee)
  • 【core 】 CsvWriter如果开启了append=true,默认自动开启endingLineBreak=true(pr#1010@Gitee)

🐞Bug修复

  • 【core 】 修复TreeUtil.getParentsName()获取到的路径集合中存在值为null的路径名称问题(issue#I795IN@Gitee)
  • 【core 】 修复umberUtil.parseNumber对+解析问题(issue#I79VS7@Gitee)
  • 【core 】 修复IdcardUtil.getGenderByIdCard存在潜在的异常(pr#1007@Gitee)
  • 【core 】 修复Table#contains空指针问题(issue#3135@Gitee)
  • 【core 】 修复FileUtil.checkSlip方法缺陷(issue#3140@Github)
  • 【extra 】 修复Sftp中exists方法父目录不存在时报错(issue#I7CSQ9@Gitee)
  • 【extra 】 修复xml转json再转bean失败问题(issue#3139@Github)
  • 【poi 】 修复RowUtil传入参数错误问题(issue#3139@Github)
  • 【core 】 修复XmlUtil.xmlToBean空节点转换失败问题(issue#3136@Github)
  • 【core 】 修复CVE-2023-3276漏洞,XmlUtil.readBySax问题(issue#I7DX8W@Gitee)

5.8.19

11 months ago

5.8.19(2023-05-27)

🐣新特性

  • 【db 】 优化HttpRequest.toString()内容打印(issue#3072@Github)
  • 【poi 】 优化Sax方式读取时空白行返回0,修改为返回-1(issue#I6WYF6@Gitee)
  • 【db 】 优化count查询兼容informix(issue#I713XQ@Gitee)
  • 【core 】 去除Opt头部的GPL协议头(pr#995@Gitee)
  • 【core 】 邮箱校验添加对中文的支持(pr#997@Gitee)
  • 【core 】 FileUtil.getMimeType增加webp识别(pr#997@Gitee)
  • 【core 】 SyncFinisher增加setExceptionHandler方法(issue#I716SX@Gitee)
  • 【core 】 FileTypeUtil.getType增加文件判断(pr#3112@Github)
  • 【core 】 增加CsvWriteConfig.setEndingLineBreak配置项(issue#I75K5G@Gitee)
  • 【core 】 增加Tailer追踪文件时文件被删除的处理情况(pr#3115@Github)
  • 【core 】 DelegatedExecutorService构造方法设置成public(issue#I77LUE@Gitee)
  • 【core 】 切面代理工具中的cglib支持多参数构造生成(issue#I74EX7@Gitee)
  • 【poi 】 添加writeCellValue的重载,以支持isHeader(pr#1002@Gitee)

🐞Bug修复

  • 【core 】 修复URLUtil.decode无法解码UTF-16问题(issue#3063@Github)
  • 【db 】 修复insertOrUpdate更新中条件字段没有移除问题(issue#I6W91Z@Gitee)
  • 【core 】 修复VIN(车架号)正则问题(pr#3078@Github)
  • 【core 】 修复HtmlUtil的removeHtmlAttr方法匹配问题(issue#I6YNTF@Gitee)
  • 【core 】 修复JSONUtil.toBean目标存在Map字段无序问题(issue#I6YN2A@Gitee)
  • 【http 】 修复HttpDownloader.downloadFile 方法缺少static问题(issue#I6Z8VU@Gitee)
  • 【core 】 修复NumberUtil mul 传入null的string入参报错问题(issue#I70JB3@Gitee)
  • 【core 】 修复ZipReader.get调用reset异常问题(issue#3099@Github)
  • 【core 】 修复FileUtil.createTempFile可能导致的漏洞(issue#3103@Github)
  • 【cron 】 修复SystemTimer无法结束进程问题(issue#3090@Github)
  • 【core 】 修复BeanUtil.copyToList复制Long等类型错误问题(issue#3091@Github)
  • 【poi 】 修复MapRowHandler结果Map无序问题(issue#I71SE8@Github)
  • 【db 】 修复SqlExecutor.execute执行ORACLE insert into select报ORA-00933问题(issue#I778U7@Gitee)
  • 【db 】 修复AbstractDb#page分页查询异常问题(issue#I73770@Gitee)

5.8.17

1 year ago

5.8.17 (2023-04-12)

🐣新特性

  • 【core 】 SerializeUtil.deserialize增加白名单类,避免RCE vulnerability(issue#3021@Github)
  • 【poi 】 ExcelWriter在关闭后不清空currentRow,以便复用(issue#3025@Github)
  • 【core 】 完善HttpStatus,参考相关规范,补全缺失的状态码(pr#968@Gitee)
  • 【core 】 NumberUtil增加(pr#968@Gitee)
  • 【core 】 Number128增加hash和equals方法(pr#968@Gitee)
  • 【core 】 NamingCase.toCamelCase新增重载,可选是否转换其他字符为小写(issue#3031@ithub)
  • 【core 】 新增JdkUtil
  • 【core 】 DateUtil.getZodiac增加越界检查(issue#3036@Github)
  • 【core 】 CsvReader修改策略,添加可选是否关闭Reader重载,默认不关闭Reader(issue#I6UAX1@Gitee)
  • 【core 】 isNotEmpty修改规则,避开IDEA错误提示(pr#974@Gitee)

🐞Bug修复

  • 【core 】 CollUtil.split优化切割列表参数判断,避免OOM(pr#3026@Github)
  • 【core 】 修复FileUtil.move传入相同目录或子目录丢失源目录的问题(pr#3032@Github)
  • 【core 】 修复SafeConcurrentHashMap.computeIfAbsent可能存在的结果为null的情况(issue#I6RVMY@Gitee)
  • 【json 】 修复Pair反序列化报错问题(issue#I6SZYB@Gitee)
  • 【core 】 修复使用AnnotationUtil.getAnnotationAlias获取注解时可能会出现空指针的问题(pr#975@Gitee)
  • 【json 】 修复没有属性的对象转json字符串抛异常问题(issue#3051@Github)