🚀Changelog
5.8.34(2024-11-25)
🐣新特性
- 【http 】 Добавление распознавания браузера Windows WeChat (issue#IB3SJF@Gitee)
- 【core 】 Увеличение кодировки с учётом ошибок в ZipUtil.unzip (issue#I3UZ28@Gitee)
- 【core 】 Совместимость Calculator с символом
x
как оператором умножения (issue#3787@Github)
- 【poi 】 В Excel07SaxReader добавлена проверка точности для типа данных «десятичное число» (issue#IB0EJ9@Gitee)
- 【extra 】 Добавлена перегрузка getBean в SpringUtil (issue#3779@Github)
- 【core 】 Добавлен метод format в DataSizeUtil (issue#IB6UUX@Gitee)
🐞Bug修复
- 【core 】 Исправлена проблема бесконечного цикла в DateUtil.rangeToList при step <= 0 (issue#3783@Github)
- 【cron 】 Исправлена зависимость cron-модуля от log-модуля
- 【extra 】 Исправлено отображение изображений в HTML-письмах, отправляемых MailUtil (pr#1279@Gitee)
- 【core 】 【Возможная проблема совместимости】 Исправлена ошибка экранирования двойных кавычек, изменены правила обработки неэкранированных двойных кавычек (например, "aa" теперь распознаётся как aa) (issue#IB5UQ8@Gitee)
- 【extra 】 Исправлена логическая ошибка повторного подключения в Sftp (issue#IB69U8@Gitee)
- 【json 】 Исправлена ошибка преобразования JSON-массива в Map в JSONUtil.toBean() (issue#3795@Github)
5.8.33(2024-11-05)
🐣新特性
- 【core 】 Добавлено setExecutorService в SyncFinisher (issue#IANKQ1@Gitee)
- 【http 】 Добавлен setUseDefaultContentTypeIfNull в HttpConfig (issue#3719@Github)
- 【core 】 Переделан WeightListRandom с использованием ArrayList
- 【crypto 】 При SM2-расшифровке поддерживается незаархивированный и сокращённый 04-заголовок GmSSL (issue#IAP1QJ@Gitee)
- 【core 】 Решена проблема потери точности при NumberUtil.add с целыми числами (pr#3721@Github)
- 【core 】 Появились комментарии к ModifierUtil и добавлен hasAllModifiers (issue#IAQ2U0@Gitee)
- 【http 】 HttpRequest получил setFixedContentLength (issue#3462@Github)
- 【db 】 AbstractDb получил getDs (issue#IARKZL@Gitee)
- 【db 】 QrCodeUtil добавил поддержку закругления углов в логотипе QR-кода (pr#3747@Github)
- 【core 】 TreeUtil.buildSingle теперь использует rootId как корневой узел (issue#IAUSHR@Gitee)
- 【core 】 EscapeUtil.escapeHtml4 теперь обрабатывает пустые значения (issue#IAZMYU@Gitee)
- 【core 】 PropDesc.isTransientForGet использует className для избежания проблем на Android (issue#IB0JP5@Gitee)
- 【core 】 Оптимизирован NumberUtil.count (pr#3772@Github)
- 【crypto 】 SM2.signHex переименован в signHexFromHex и помечен как устаревший (issue#IB0NVY@Gitee)
- 【all 】 Оптимизация ObjectUtil#defaultIfNull для избежания дублирования (pr#1274@Gitee)
- 【core 】 NetUtil.bigIntegerToIPv6 теперь корректирует длину (issue#IB27HV@Gitee)
🐞Bug修复
- 【json 】 JSONConfig.setDateFormat теперь работает корректно после toBean (issue#3713@Github)
- 【core 】 RegexPool.CHINESE_NAME теперь имеет более подходящий диапазон (issue#IAOGDR@Gitee)
- 【http 】 Теперь перенаправление соответствует RFC7231, кроме 307, которые перенаправляются через GET (issue#3722@Github)
- 【core 】 ArrayUtil.lastIndexOfSub больше не вызывает зацикливание (issue#IAQ16E@Gitee)
- 【core 】 ImgUtil.write теперь корректно удаляет временные файлы (issue#IAPZG7@Gitee)
- 【json 】 ignoreNullValue теперь работает правильно в JSONArray (issue#3759@Github)
**# 5.8.32(2024-08-30)
🐣新特性
- 【core 】 FileUtil.getTotalLines() теперь поддерживает CR как символ конца строки (issue#IAMZYR@Gitee)
- 【json 】 GlobalSerializeMapping теперь проверяет на null (issue#IANH1Y@Gitee)
🐞Bug修复
- 【http 】 getFileNameFromDisposition теперь соответствует стандартам (issue#IAKBPD@Gitee)
- 【crypto 】 SymmetricCrypto.setParams и setRandom теперь блокируются (issue#IAJIY3@Gitee)
- 【crypto 】 ZipUtil теперь корректно обрабатывает ошибки при сжатии в поток (issue#3697@Github)
- 【core 】 CopyOptions.setFieldValueEditor теперь корректно работает с setIgnoreNullValue (issue#3702@Github)
- 【json 】 JSONConfig.setDateFormat теперь корректно работает после setWriteLongAsString (issue#IALQ0N@Gitee)
- 【core 】 Tree.cloneTree теперь корректно копирует Parent узлы (issue#IANJTC@Gitee)
5.8.31(2024-08-12)
🐣新特性
- 【core 】 TreeUtil получил build для создания древовидной структуры Bean (pr#3692@Github)
🐞Bug修复
- 【extra 】 JakartaMailUtil теперь не ссылается на javax
- 【core 】 GraphicsUtil.drawString теперь работает корректно (issue#3694@Github)
5.8.30(2024-08-09)
🐣新特性
- 【core 】 Converter теперь создаёт объекты по умолчанию вместо null при преобразовании пустых объектов и значений (issue#3649@Github)
- 【core 】 UrlQuery получил remove
- 【extra 】 добавлен JakartaMailUtil для поддержки нового имени пакета mail
- 【core 】 ### 🐞Исправления ошибок
-
Core. Добавлены методы removeAllPrefix и removeAllSuffix в CharSequenceUtil (pr#3655@Github).
-
Core. В CharSequenceUtil добавлен метод stripAll (pr#3659@Github).
-
Crypto. Поддержка RSA-шифрования и дешифрования с использованием алгоритма «RSA/ECB/OAEPWithSHA-1AndMGF1Padding» (pr#3675@Github).
-
Core. Opt добавлен метод ifFail (pr#1239@Gitee).
-
Poi. Добавлен GlobalPoiConfig (issue#IAEHJH@Gitee).
-
Core. Улучшена производительность IndexedComparator (pr#1240@Gitee).
-
Http. Улучшен метод getContentType, игнорирующий пробелы (pr#3664@Github).
-
Http. CompressUtil.createExtractor поддерживает автоматическое распознавание tgz (pr#3674@Github).
-
Poi. В ExcelWriter.autoSizeColumn добавлен необязательный параметр widthRatio для настройки ширины китайских символов (pr#3689@Github).
-
Mail. MailAccount добавлена поддержка пользовательских параметров (issue#3687@Github).
-
Mail. Добавлена настройка цветового контраста между текстом и фоном (pr#1252@gitee).
-
Mail. XmlUtil добавил перегруженный метод xmlToBean, поддерживающий CopyOptions (issue#IAISBB@gitee).
-
Core. Добавлен метод по умолчанию для определения цветового контраста (pr#1257@gitee).
-
All. Модульные тесты обновлены с JUnit4 на JUnit5.
🐞 Исправления ошибок
-
Core. Исправлена проблема с обработкой двоеточия в UrlPath из-за неправильного понимания RFC3986 (issue#IAAE88@Gitee).
-
Core. Исправлено некорректное удаление пустых каталогов в FileUtil.cleanEmpty (pr#1233@Gitee).
-
Core. Исправлена ошибка в BeanUtil.copyProperties, когда ключ преобразовывался в String (issue#3645@Github).
-
Core. Решена проблема с ошибочным определением пути в FileUtil.file из-за символа конца строки (issue#IAB65V@Gitee).
-
Core. Устранена проблема с пустым указателем в FileTypeUtil.getType (issue#IAD5JM@Gitee).
-
Core. Исправлена проверка IdcardUtil.isValidHKCard (issue#IAFOLI@Gitee).
-
Core. Конвертер Convert.digitToChinese теперь корректно обрабатывает 0 (issue#3662@Github).
-
Core. Исправлены логические ошибки обработки двойных кавычек в CsvParser (pr#1244@Gitee).
-
Core. Решён вопрос с бесконечным циклом при сжатии ZipUtil в текущую директорию (issue#IAGYDG@Gitee).
-
Cache. Устранены проблемы с блокировкой в AbstractCache.get (issue#3686@Github).
-
Cron. Исправлен переполнение стека в CronPatternUtil.nextDateAfter (issue#3685@Github).
5.8.29 (2024-07-03)
🐣 Новые функции
-
Core. DateUtil получил метод offsetYear.
-
Core. ListUtil получил метод move (issue#3603@Github).
-
Core. CollUtil.subtract получил проверку на пустоту (issue#3605@Github).
-
Core. Оптимизирована эффективность интерфейса DateUtil.format (Date date, String format) (pr#1226@Gitee).
-
Csv. CsvWriter.writeBeans получил перегрузку с опцией записи заголовков (issue#IA57W2@Gitee).
-
Core. BetweenFormatter поддерживает пользовательские единицы измерения (pr#1228@Gitee).
-
Cache. Cache.put изменил стратегию, не очищая очередь при замене значений (issue#3618@Github).
-
Core. Добавлено сравнение строк в стиле Windows Explorer (pr#3620@Github).
-
Core. Week.of поддерживает китайские названия (issue#3637@Github).
-
Core. ThreadUtil.newExecutor изменил сигнатуру метода, возвращая ThreadPoolExecutor (pr#1230@Gitee).
🐞 Исправления ошибок
-
Core. Исправлена возможная ошибка с пустым указателем в AnnotationUtil.
-
Core. Исправлена ошибка проверки Dict в BeanUtil.isBean (issue#I9VTZG@Gitee).
-
Core. Версия VersionComparator больше не выдаёт ошибку при пустой строке (pr#3614@Github).
-
Core. Исправлена последовательная ошибка в CaseInsensitiveLinkedMap (issue#IA4K4F@Gitee).
-
Core. Дата DateUtil.offset больше не вызывает проблем с пустым указателем (issue#3617@Github).
-
Core. PathMover.moveContent теперь работает корректно (issue#IA5Q8D@Gitee).
-
Db. Решено возможное отсутствие драйвера базы данных в PooledConnection (issue#IA6EUQ@Gitee).
-
Http. На Mac исправлено определение браузера WeChat как мобильного (issue#IA74K2@Gitee).
-
Core. Tailer теперь правильно вычисляет начальное количество строк для чтения (issue#IA77ML@Gitee).
-
Http. Исправлена ошибка получения имени файла в getFileNameFromDisposition (issue#3632@Github).
-
Core. Проблема с анализом \n в двойных кавычках решена (issue#IA8WE0@Gitee).
-
Core. FastDatePrinter теперь корректно обрабатывает YY (issue#3641@Github).
5.8.28 (2024-05-29)
🐣Новые функции
-
Core. Исправлены комментарии к описанию в XmlUtil (issue#I9CPC7@Gitee).
-
Core. StrUtil получил метод toStringOrEmpty (issue#I9CPC7@Gitee).
-
Extra. Возможность установить способ аутентификации при входе через jsch, пропуская Kerberos (pr#3530@Github).
-
Extra. Добавлена возможность устанавливать размер капчи и добавлять комментарии к alias (pr#3533@Github).
-
Json. JSONConfig получил опцию setWriteLongAsString для записи Long в виде строки (issue#3541@Github).
-
Cache. CacheUtil.newTimedCache получил перегруженный метод с параметром schedulePruneDelay (issue#I9HO25@Gitee).
-
Core. NumberChineseFormatter предоставляет поддержку многозначного преобразования арабских чисел в китайские (pr#3552@Github).
-
Captcha. При установке фона Captcha в null фон становится прозрачным (issue#3558@Github).
-
Captcha. HttpDownloader.downloadBytes получил перегрузки с таймаутом (issue#3556@Github).
-
Http. Добавлены ExceptionFilter и DefaultExceptionFilter для обработки исключений (issue#3568@Github).
-
Poi. ExcelWriter получил addIgnoredErrors для поддержки игнорирования предупреждений (issue#3570@Github). ### Добавление перегрузок в PropertyComparator
- 【db】 Добавить инференс драйвера OceanBase (pr#1217@Gitee).
- 【http】 HttpRequest#get больше не пытается использовать пути к файлам (issue#I9O6DA@Gitee).
- 【core】 Добавлены IdConstants, улучшена производительность инициализации Snowflake (issue#3581@Github).
- 【core】 Улучшены имена параметров в startWithAny() и startWithAnyIgnoreCase() в CharSequenceUtil (pr#1219@Gitee).
- 【core】 ListUtil.setOrPadding получил перегрузки с возможностью ограничения размера индекса (issue#3586@Github).
- 【http】 getFileNameFromDisposition стал более стандартизированным, получает значения из нескольких заголовков, отдавая предпочтение
filename*
(pr#3590@Gitee).
- 【core】 CsvWriter получил перегрузки для writeBeans, поддерживающие необязательные поля bean (pr#1222@Gitee).
- 【core】 LocalDateTimeUtil получил перегрузки beginOfDay и endOfDay (issue#3594@Github).
- 【core】 NumberUtil.pow теперь поддерживает отрицательные числа (issue#3598@Github).
🐞 Исправления ошибок
- 【http】 Исправлена проблема с повторным кодированием в методе HttpUtil.urlWithFormUrlEncoded (issue#3536@Github).
- 【core】 Исправлена ошибка с пустым указателем в FileMagicNumber.getMagicNumber (issue#I9FE8B@Gitee).
- 【extra】 Исправлена некорректная работа CompressUtil (issue#I71K5V@Gitee).
- 【db】 Решена проблема с установкой объекта через setObject(inputStream) в Oracle, вызывающая SQLException: недопустимый тип столбца (pr#1207@Gitee).
- 【core】 Решена проблема некорректного результата CalendarUtil.isSameDay при разных часовых поясах (pr#3548@Github).
- 【core】 Исправлен метод RandomUtil.randomStringWithoutStr (pr#1209@Gitee).
- 【http】 Исправлено перекрытие ключей в заголовках HttpRequest (issue#I9I61C@Gitee).
- 【core】 Устранена проблема с преобразованием пользовательских форматов в TemporalAccessorConverter (issue#I9HQQE@Gitee).
- 【cron】 Исправлена начальная проблема сопоставления в CronPattern.nextMatchAfter (issue#I9FQUA@Gitee).
- 【core】 Исправлено отсутствие создания родительского каталога при копировании файлов в FileUtil (issue#3557@Github).
- 【http】 Решён вопрос с неработающим глобальным таймаутом в HttpDownloader (issue#3556@Github).
- 【core】 Исправлена ошибка проверки ZipBomb в ZipReader.checkZipBomb при пустом каталоге (issue#I9K494@Gitee).
- 【db】 Устранены проблемы с получением метаданных в Oracle для специальных имён таблиц (issue#I9BANE@Gitee).
- 【db】 Функционал FuncComparator.thenComparing теперь работает корректно (issue#3569@Github).
- 【core】 Исправлена проблема с пустым указателем EnumUtil (issue#I9NSZ4@Gitee).
- 【core】 Проблема с форматированием дробных чисел в NumberWordFormatter.format решена (issue#3579@Github).
- 【db】 Исправлена проблема JndiDSFactory с пустым указателем.
- 【core】 BiMap.put теперь возвращает корректное значение (pr#1218@Gitee).
- 【core】 BooleanUtil.andOfWrap корректно обрабатывает null (issue#3587@Github).
- 【core】 FileUtil#getTotalLines теперь корректно работает на JDK9+ (issue#3591@Github).
5.8.27 (2024-03-29)
🐣 Новые функции
- 【extra】 FreemarkerEngine: изменение параметра версии по умолчанию.
- 【db】 Поддержка диалекта базы данных DM.
- 【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).
🐞Исправления ошибок
- 【core】 PathMover больше не выдаёт ошибку при перемещении файлов в целевой каталог, который существует и доступен только для чтения (issue#I95CLT@Gitee).
- 【json】 JSONUtil: исправлена проблема несоответствия ожидаемых результатов при сериализации и десериализации (pr#3507@Github).
- 【http】 Закрыт CVE-2022-22885, HttpGlobalConfig позволяет отключать доверие к host (issue#2042@Github).
- 【core】 DateUtil.betweenYear корректно обрабатывает високосные годы (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 (2024-02-10)
🐣Новые функции
- 【db】 RedisDS получил поддержку user (issue#I8XEQ4@Gitee).
- 【core】 MapUtil получил метод partition (pr#1170@Gitee).
- 【core】 Представлен класс Version (issue#I8Z3VE@Gitee).
🐞Исправления ошибок
- 【crypto】 BouncyCastleProvider больше не вызывает ошибки в приложениях GraalVM (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】 ExcelUtil.getReader теперь корректно освобождает файл, если sheetName не существует (issue#I8ZIQC@Gitee). ### 5.8.22 (2023-09-13)
🐣 Новые возможности
-
core. Добавлена перегрузка NumberUtil.nullToZero.
-
core. DesensitizedUtil получил стратегию очистки.
-
all. Изменена стратегия упаковки исключений: упаковываются только не во время выполнения исключения.
-
core. Введён IJSONTypeConverter для избежания рефлексивных вызовов.
-
http. Оптимизирован метод HttpUtil.urlWithForm.
-
cron. Оптимизирован PatternParser для поддержки годового инкремента.
-
core. TreeUtil получил метод getParentsId.
🐞 Исправления ошибок
-
core. Исправлена проблема с преобразованием NumberUtil.toBigDecimal в экспоненциальной записи.
-
core. Исправлено некорректное поведение PathUtil.moveContent при отсутствии target.
-
db. Исправлены проблемы с форматированием SQL в SqlUtil.formatSql.
-
core. Дата утилита DateUtil.parse исправлена для корректного разбора дат.
-
core. Удалён default ACCEPT_LANGUAGE.
-
core. Исправлена некорректная работа FieldsComparator.
-
core. Db.findAll теперь корректно учитывает регистр.
-
core. Ipv4Util.getEndIpLong исправил проблему с переполнением данных.
-
http. Исправлено некорректное экранирование символов в Location при редиректе 302.
-
core. CombinationAnnotationElement исправил циклическую проверку.
-
core. StrUtil#containsAny исправил NPE.
-
all. Исправлено исключение OutOfMemory в методе add() класса SONArray.
-
core. FillColumns исправил NullPointerException.
-
core. Convert теперь корректно обрабатывает Optional и Opt.
-
core. DateUtil.age исправил ошибку расчёта возраста.
-
core. JSONUtil.parse() исправил переполнение.
-
core. Tailer stop исправил NPE.
-
json. toJSONString исправил высокую загрузку CPU.
-
core. NumberUtil.parseInt исправил ошибки шестнадцатеричного разбора.
-
core. CopyOptions.setIgnoreCase и setIgnoreProperties больше не конфликтуют.
-
core. LocalDateTimeUtil.of теперь возвращает правильные результаты для некоторых специальных TemporalAccessor.
5.8.21 (2023-07-29)
🐣Новые возможности
-
core. CollUtil.max возвращает null, если список пуст, вместо выбрасывания исключения (pr#1027@Gitee).
-
poi. ExcelReader.getWriter изменён так, чтобы при чтении из нефайловых источников получать лист, а не пустую таблицу.
-
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. Поддержка body параметров через multiparty (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).
🐞Исправления ошибок
-
core. Исправлена ошибка, связанная с использованием метода filter в MapUtil (issue#3162@Github).
-
core. Сериализация и десериализация Class исправлены (issue#I7FQ29@Gitee).
-
setting. Исправлена проблема чтения файла setting с utf8-bom (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. Ошибка длины маскировки номера банковской карты исправлена (pr#3210@Github).
-
jwt. JWTSignerUtil теперь корректно формирует подпись ES256 (issue#3205@Github).
-
core. UserInfo теперь корректно определяет страну (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. Chrome на iOS теперь корректно использует правила разбора (pr#1044@Gitee).
-
extra. Многопоточная работа Sftp теперь корректно закрывает Channel (issue#I7OHIB@Gitee). ### Исправление ошибок
-
[core] Оптимизация
CollUtil.split
: улучшение обработки параметров списка, чтобы избежать ошибки OOM (pr#3026@Github).
-
[core] Исправлена проблема с
FileUtil.move
, когда при перемещении в тот же каталог или подкаталог терялся исходный каталог (pr#3032@Github).
-
[core] Исправлено возможное возникновение
null
в результате SafeConcurrentHashMap.computeIfAbsent
(issue#I6RVMY@Gitee).
-
[json] Устранена проблема с ошибкой десериализации
Pair
(issue#I6SZYB@Gitee).
-
[core] Исправлена возможная проблема
NullPointerException
при использовании AnnotationUtil.getAnnotationAlias
для получения аннотации (pr#975@Gitee).
-
[json] Исправлено исключение при преобразовании объекта без свойств в JSON-строку (issue#3051@Github).
Новые функции
-
[core] Улучшен
Calculator.conversion
: добавлена поддержка умножения без символа (issue#2964@Github).
-
[core] Улучшен
XmlUtil.xmlToBean
: теперь поддерживает преобразование XML в bean с игнорированием регистра в именах родительских узлов.
-
[core] Оптимизирован
ArrayUtil
для проверки на пустоту (pr#2969@Github).
-
[extra] Оптимизирована обработка исключений
SpringUtil
в не-Spring среде (issue#2835@Github).
-
[core] В
StrUtil
добавлены методы commonPrefix
и commonSuffix
(pr#3007@Github).
-
[core]
NumberUtil
получил перегрузки метода parseXXX
, которые возвращают значение по умолчанию при ошибке разбора (pr#3007@Github).
-
[core]
FileUtil
получил перегрузку readLines
с поддержкой фильтрации (pr#3006@Github).
-
[json] При выборе
ignoreError
ошибки объектов игнорируются при сериализации в JSON.
Исправление ошибок
-
[crypto] Исправлена необработанная ошибка
NoSuchMethodError
(issue#2966@Github).
-
[poi] Исправлена некорректная работа
SXSSFWorkbook.setComment
(issue#I6MBS5@Gitee).
-
[core] Исправлена ошибка в
BeanUtil.hasGetter
, которая не пропускала вызов getClass
(issue#I6MBS5@Gitee).
-
[core] Исправлена проблема выхода за границы из-за некорректной проверки длины
FileMagicNumber
(issue#I6MACI@Gitee).
-
[core] Исправлены проблемы с анализом дат в формате ISO8601 в
DateUtil
(issue#2981@Github).
-
[core] Устранена возможная
NullPointerException
в JSONUtil.toBean
(issue#2987@Github).
-
[core] Исправлена несогласованность в работе
CalendarUtil.isSameMonth
для дат до нашей эры (issue#3011@Github).
-
[core] Исправлена ошибка, когда
WatchUtil createModify maxDepth
не использовался после передачи (issue#3005@Github).
-
[core] Исправлена неработающая инверсия
NullComparator
(pr#964@Gitee).
-
[setting] Исправлена ошибка с незаполненными полями массива в
props.toBean
(issue#3008@Github).
Версия 5.8.16 (2023-03-26)
Новые возможности
-
[http] Добавлена настройка
followRedirectsCookie
, позволяющая автоматически перенаправлять файлы cookie (pr#2961@Github).
Исправления ошибок
-
[all] Исправлена ошибка с именем автоматического модуля (issue#2952@Github).
-
[core] Исправлена ошибка преобразования в
Long
из-за NumberWithFormat
(issue#I6L2LO@Gitee).
Версия 5.8.15 (2023-03-09)
Новые возможности
-
[http] Добавлено
followRedirectsCookie
для автоматического перенаправления файлов cookie (pr#2961@Github).
Исправления ошибок
-
[all] Исправлена ошибка с автоматическим модулем (issue#2952@Github).
-
[core] Исправлена ошибка преобразования
Long
из-за NumberWithFormat
(issue#I6L2LO@Gitee).
Версия 5.8.14 (2023-03-05)
Новые возможности
-
[core] Представлен
PathMover
(issue#I666HB@Github).
Исправления ошибок
-
[core] Исправлена проблема удаления исходного каталога при
FileUtil.moveContent
(issue#I666HB@Github).
-
[http] Исправлена
HttpBase.body
, вызывающая NullPointerException
.
Версия 5.8.13 (2023-03-03)
Новые возможности
-
[core] Поддержка формата
PhoneUtil.isTel400800
для номеров 400-XXX-XXXX (issue#2929@Github).
-
[core] Добавление свойства
Automatic-Module-Name
в build(pom) (pr#2926@Github).
-
[core] Изменение способа создания потоков ввода-вывода файлов в соответствии с JDK-8080225 (pr#2930@Github).
-
[http]
HttpRequest#body
теперь поддерживает перегрузку Resource
(issue#2901@Github).
-
[core] JavaSourceCompiler#compile получил новую перегрузку для пользовательских опций (issue#I6IVZK@Gitee).
Исправления ошибок
-
[db] Исправлена повторная идентификация JDBC-драйвера (pr#940@Gitee).
-
[core] Исправлен расчёт возраста (pr#935@Gitee).
-
[core] Исправлена ошибка
FileUtil.rename
, вызывающая NoSuchFileException
(pr#2894@Github).
-
[core] Исправлена ошибка
StrUtil.split
при длине равной нулю (pr#944@Gitee).
-
[core] Исправлена работа метода
ReUtil.delAll
, если content состоит только из пробелов (issue#I6GIMT@Gitee).
-
[core] Исправлена утечка файла после вызова stop (issue#I6GFD2@Gitee).
-
[core] Исправлена ошибка некорректного преобразования типов в методе
ReflectUtil.invokeRaw
(pr#2912@Github).
-
[core] Исправлена проблема сопоставления при конвертации
isXXX
(issue#I6H0XF@Gitee).
-
[core] Исправлена
NullPointerException
в MutableObj.equals
.
-
[core] Исправлена ошибка компиляции, когда JavaSourceFileObject выбрасывает
IOException
вместо CompilerException
(pr#2942@Github).
-
[jwt] Исправлена проблема преобразования времени после изменения формата в JWT (issue#I6IS5B@Gitee).
Версия 5.8.12 (2023-02-09)
Новые возможности
-
[http] Игнорирование ошибок при вызове
HttpGlobalConfig.allowPatch()
(issue#2832@Github).
-
[core] Переработка определения типа файла по магическому числу (pr#2834@Github).
-
[core] Добавлена поддержка WGS84 и Меркатора (pr#2811@Github).
-
[extra] Соответствие ServletUtil RFC 3986 (issue#I6ALAO@Gitee). ### Новые функции
- 【core】 CharUtil.isBlankChar добавлен \u180e (pr#2738@Github).
- 【core】 В SyncFinisher, поток синхронизации, добавлен метод для немедленного завершения работы (pr#879@Gitee).
- 【core】 В HtmlUtil в методе escape добавлена трансляция неразрывных пробелов (nbsp) для предотвращения атак XSS (pr#2755@Github).
- 【extra】 Исправлена ошибка в методе cd в sftp (issue#2758@Github).
- 【core】 Изменены неоднозначные комментарии в PhoneUtil (issue#I63GWK@Gitee).
- 【crypto】 В KeyUtil добавлен глобальный Provider в метод чтения файла KeyStore (issue#I6796G@Gitee).
- 【extra】 CompressUtil добавил параметр stripComponents (pr#904@Gitee).
- 【extra】 ServletUtil и JakartaServletUtil добавили метод получения всех заголовков ответа (pr#2828@Github).
- 【core】 BooleanUtil добавил toString с перегрузкой (pr#2816@Github).
Исправления ошибок
- 【json】 Исправлены исключения при преобразовании обычного массива байтов в JSONArray (pr#875@Gitee).
- 【core】 Исправлена проблема с ArrayUtil.insert(), которая не поддерживала массивы исходных типов (pr#874@Gitee).
- 【core】 Исправлено превышение точности long в логике проверки HexUtil.isHexNumber() (issue#I62H7K@Gitee).
- 【core】 Устранена проблема поиска в BiMap из-за отсутствия переопределения computeIfAbsent и putIfAbsent (issue#I62X8O@Gitee).
- 【json】 Частично исправлены проблемы переполнения стека при анализе JSON (issue#2746@Github).
- 【json】 Исправлено сохранение пробелов в getMultistageReverseProxyIp (issue#I64P9J@Gitee).
- 【db】 Исправлена некорректная работа NamedSql с игнорированием регистра в in (issue#2792@Github).
- 【core】 Закрыта уязвимость ZIP bomb (issue#2797@Github).
- 【core】 Решена проблема потери contentKeys при рекурсивном преобразовании JSON в XML (pr#903@Gitee).
- 【db】 Устранено исключение NullPointException при создании SimpleDataSource через jdbcurl в mariadb (pr#900@Gitee).
- 【core】 Исправлена ошибочная проверка параметров в UrlBuilder, содержащих "://" (pr#898@Gitee).
- 【core】 Восстановлена корректность данных в IndexedComparator, устранена потеря полей при использовании ExcelWriter (issue#I66Z6B@Gitee).
- 【crypto】 Исправлен NullPointerException в конструкторе sm2 (pr#2820@Github).
- 【core】 Поправлена проблема загрузки в ConverterRegistry (issue#2812@Github).
- 【core】 Исправлена ошибка параметров преобразования координат в CoordinateUtil (pr#895@Gitee).
5.8.10 (2022-11-17)
Новые функции
- 【http】 HttpResponse получил метод getFileNameFromDisposition (pr#2676@Github).
- 【core】 FileUtil.copy теперь возвращает файл, а не директорию, если источник — файл (issue#I5YCVL@Gitee).
- 【db】 DialectFactory получил перегрузку identifyDriver (issue#I5YWI6@Gitee).
- 【core】 Удалена кэш-память ClassloaderUtil (issue#I5YWI6@Gitee).
- 【core】 ClassScanner получил метод сканирования с игнорированием ошибок загрузки классов (pr#855@Gitee).
- 【core】 DateUtil и LocalDateTimeUtil получили функции для работы с интервалами, точками и их отношениями (pr#2725@Github).
- 【http】 UserAgentUtil получил поддержку ПК-версии DingTalk (issue#I60UOP@Gitee).
- 【extra】 Обеспечена совместимость ZipArchiveInputStream с несколькими параметрами (issue#2736@Github).
Исправления ошибок
- 【db】 Решена проблема усечения при сортировке по страницам (issue#I5X6FM@Gitee).
- 【core】 Исправлена ошибка расчёта размера раздела при делении на ноль (pr#2677@Github).
- 【core】 BCD помечен как устаревший из-за проблем с кодировкой ASCII и нестандартизированного подхода к реализации (issue#I5XEC6@Gitee).
- 【core】 Метод IoUtil.copyByNIO теперь корректно выполняет flush при записи.
- 【core】 TreeBuilder теперь корректно обрабатывает порядок элементов при использовании HashMap (issue#I5Z8C5@Gitee).
- 【core】 StrUtil.subWithLength теперь корректно работает с отрицательными числами (issue#I5YN49@Gitee).
- 【core】 DefaultTrustManager избавлен от проблемы с пустым указателем (issue#2716@Github).
- 【core】 Исправлена проблема безопасности потоков при добавлении задач в колесо времени (pr#2712@Github).
- 【core】 BeanUtil#copyProperties теперь корректно игнорирует свойства при копировании между двумя объектами Map (pr#2698@Github).
- 【core】 ChineseDate теперь правильно конвертирует традиционные даты в григорианский календарь, исключая ошибки в не-високосные месяцы (issue#I5YB1A@Gitee).
- 【core】 Исправлена проблема использования слабых ссылок в качестве ключей. ```
【core 】 CollUtil新增addIfAbsent方法(pr#750@Gitee)
【core 】 DateUtil.parseUTC支持只有时分的格式(issue#I5M6DP@Gitee)
【core 】 NumberUtil.parseInt忽略科学计数法(issue#I5M55F@Gitee)
【core 】 IterUtil.getFirst优化(pr#753@Gitee)
【core 】 增加Tree add 类型校验(pr#2542@Github)
【core 】 增加PunyCode处理完整域名(pr#2543@Github)
【core 】 增加替换字符串中第一个指定字符串和最后一个指定字符串方法(pr#2533@Github)
【jwt 】 JWT补充部分算法(pr#2546@Github)
【core 】 NumberUtil.roundStr() 修改为使用toPlainString(pr#775@Gitee)
【extra 】 QrCodeUtil新增SVG格式、Ascii Art字符画格式(pr#763@Gitee)
【jwt 】 JWTUtil的parseToken增加空值异常抛出(issue#I5OCQB@Gitee)
【extra 】 resource.loader等过期参数替换(issue#2571@Github)
【core 】 添加ObjectUtil的别名工具类ObjUtil
【core 】 扩展LocalDateTimeUtil.isIn方法使用场景(pr#2589@Github)
【core 】 MapUtil增加根据entry分组(pr#2591@Github)
【core 】 优化 getProcessorCount 潜在的获取不到的问题(pr#792@Gitee)
【core 】 ImgUtil增加sliceByRowsAndCols重载方法支持自定义图片格式(pr#793@Gitee)
🐞Bug修复
【http 】 修复https下可能的Patch、Get请求失效问题(issue#I3Z3DH@Gitee)
【core 】 修复RandomUtil#randomString 入参length为负数时报错问题(issue#2515@Github)
【core 】 修复SecureUtil传入null的key抛出异常问题(pr#2521@Github)
【core 】 修复UrlBuilder的toURI方法将url重复编码(issue#2503@Github)
【core 】 修复CollUtil.lastIndexOf序号错误问题
【core 】 修复zip被识别成jar和apk被识别成jar或zip的问题(pr#2548@Github)
【core 】 修复UrlBuilder.addPath 方法传入非有效路径字符串时,会出现空指针异常的问题(issue#I5O4ML@Gitee)
【core 】 修复FilterIter当参数filter为空时存在问题(issue#I5OG7U@Gitee)
【poi 】 修复Excel读取提示信息错误(issue#I5OSFC@Gitee)
【json 】 解决JSONObject#write无法递归的bug(issue#I5OMSC@Gitee)
【json 】 修复DayOfWeek转json异常问题(issue#2572@Github)
【extra 】 Ftp方法isDir和exist修复及改进(pr#2574@Github)
【json 】 修复JSON反序列化时,引用字段类型的自定义JsonDeserializer无效(issue#2555@Github)
5.8.5 (2022-07-29)
❌不兼容特性
【core 】 合成注解相关功能重构,增加@Link及其子注解(pr#702@Gitee)
🐣新特性
【core 】 NumberUtil新增isIn方法(pr#669@Gitee)
【core 】 修复注解工具类getAnnotations的NPE问题,注解扫描器添新功能(pr#671@Gitee)
【core 】 合成注解SyntheticAnnotation提取为接口,并为实现类添加注解选择器和属性处理器(pr#678@Gitee)
【core 】 增加BeanValueProvider(issue#I5FBHV@Gitee)
【core 】 Convert工具类中,新增中文大写数字金额转换为数字工具方法(pr#674@Gitee)
【core 】 新增CollectorUtil.reduceListMap()(pr#676@Gitee)
【core 】 CollStreamUtil为空返回空的集合变为可编辑(pr#681@Gitee)
【core 】 增加StrUtil.containsAll(pr#2437@Github)
【core 】 ForestMap添加getNodeValue方法(pr#699@Gitee)
【http 】 优化HttpUtil.isHttp判断,避免NPE(pr#698@Gitee)
【core 】 修复Dict#containsKey方法没区分大小写问题(pr#697@Gitee)
【core 】 增加比较两个LocalDateTime是否为同一天(pr#693@Gitee)
【core 】 增加TemporalAccessorUtil.isIn、LocalDateTimeUtil.isIn(issue#I5HBL0@Gitee)
【core 】 ReUtil增加getAllGroups重载(pr#2455@Github)
【core 】 PageUtil#totalPage增加totalCount为long类型的重载方法(pr#2442@Github)
【crypto 】 PemUtil.readPemPrivateKey支持pkcs#1格式,增加OpensslKeyUtil(pr#2456@Github)
【core 】 添加了通用的注解扫描器 GenericAnnotationScanner
,并在 AnnotationScanner
接口中统一提供了提前配置好的扫描器静态实例(pr#715@Github)
【json 】 JSONConfig增加允许重复key配置,解决不规整json序列化的问题(pr#720@Github)
【core 】 完善了codec包下一些方法的入参空校验(pr#719@Gitee)
【extra 】 完善QrCodeUtil对于DATA_MATRIX生成的形状随机不可指定的功能(pr#722@Gitee)
【core 】 修改NetUtil.ipv6ToBigInteger,原方法标记为过期(pr#2485@Github)
【core 】 ZipUtil新增zip文件解压大小限制,防止zip炸弹(pr#726@Gitee)
【core 】 CompressUtil增加压缩和解压tgz(.tar.gz)文件(issue#I5J33E@Gitee)
🐞Bug修复
【core 】 修复CollUtil里面关于可变参数传null造成的crash问题(pr#2428@Github)
【socket 】 修复异常socket没有关闭问题(pr#690@Gitee)
【core 】 修复当时间戳为Integer时时间转换问题(pr#2449@Github)
【core 】 修复bmp文件判断问题(issue#I5H93G@Gitee)
【core 】 修复CombinationAnnotationElement造成递归循环(issue#I5FQGW@Gitee)
【core 】 修复Dict缺少putIfAbsent、computeIfAbsent问题(issue#I5FQGW@Gitee)
【core 】 修复Console.log应该把异常信息输出位置错误问题(pr#716@Gitee)
【core 】 修复UrlBuilder无法配置末尾追加“/”问题(issue#2459@Github)
### ❌ Несовместимые функции
* 【extra 】 Обновление jakarta.validation-api до версии 3.x, изменение имени пакета приводит к несовместимости с предыдущими версиями.
* 【core 】 Удаление метода beanToMap(Object) из BeanUtil из-за наличия метода с переменными параметрами, что может привести к проблемам при прямом обновлении. Необходимо перекомпилировать проект после обновления.
### 🐣 Новые функции
* 【core 】 Добавление новых методов в Singleton (pr#609@Gitee).
* 【core 】 Перегрузка метода beanToMap в BeanUtil (pr#2292@Github).
* 【core 】 Добавление соответствующих методов equals и notEquals в Assert (pr#612@Gitee).
* 【core 】 DigestUtil добавил метод sha512 (issue#2298@Github).
### 🐞 Исправления ошибок
* 【db 】 Исправление проблемы с невозможностью установки maxWaitMillis в RedisDS (issue#I54TZ9@Gitee).
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M4 (2022-04-27)
### ❌ Несовместимые функции
* 【json 】 Возможная несовместимость: удаление некоторых конструкторов JSONArray.
* 【json 】 Возможная несовместимость: использование InputStream в качестве источника для JSONTokener теперь приводит к изменению кодировки на UTF-8.
### 🐣 Новые функции
* 【core 】 BeanUtil добавил перегруженный метод toBean (pr#598@Gitee).
* 【json 】 Новый JSONParser.
* 【json 】 Добавлен метод фильтрации при разборе JSON.
* 【core 】 ArrayUtil.distinct и CollUtil.distinct получили перегрузки (issue#2256@Github).
* 【core 】 TransMap, FuncMap, ReferenceConcurrentMap и WeakConcurrentMap были добавлены.
* 【json 】 ObjectMapper был добавлен.
* 【core 】 CHINESE_NAME регулярное выражение было расширено (pr#599@Gitee).
* 【extra 】 JakartaServletUtil был добавлен (issue#2271@Github).
* 【poi 】 ExcelWriter поддерживает запись повторяющихся псевдонимов данных (issue#I53APY@Gitee).
* 【core 】 Hashids был добавлен (issue#I53APY@Gitee).
* 【core 】 ReflectUtil.newInstanceIfPossible добавил реализации по умолчанию для перечислений, массивов и других типов.
* 【core 】 CombinationAnnotationElement получил фильтрацию (pr#605@Gitee).
* 【all 】 CHANGELOG был упрощён.
* 【core 】 AnsiEncoder был добавлен.
* 【log 】 ConsoleColorLog с цветным японским стилем вывода был добавлен (pr#607@Gitee).
### 🐞Исправления ошибок
* 【core 】 Исправлена проблема с нестатическим методом StrUtil.firstNonX (issue#2257@Github).
* 【core 】 Проблема безопасности потоков в SimpleCache была исправлена.
* 【core 】 Потенциальная проблема смещения ClassLoader в ClassLoaderUtil была исправлена.
* 【extra 】 Ошибка анализа содержимого Sftp, связанная с регистром символов, была исправлена (issue#I53GPI@Gitee).
* 【core 】 Исключения, возникающие при пустых файлах, были исправлены (pr#602@Gitee).
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M3 (2022-04-14)
### ❌Несовместимые функции
* 【core 】 Параметр метода progress в StreamProgress изменился на два (pr#594@Gitee).
* 【core 】 В SimpleCache используются изменяемые ключи.
* 【core 】 Удалена устаревшая перегрузка ArrayUtil.join.
* 【core 】 Holder класс удалён, параметры метода extractMultiAndDelPre в ReUtil изменены на Mutable.
### 🐣Новые функции
* 【core 】 CopyOptions поддерживает установку списка игнорируемых свойств с помощью лямбда-выражений (pr#590@Gitee).
* 【core 】 Китайский формат имён и проверка были добавлены (pr#592@Gitee).
* 【core 】 Snowflake поддерживает использование случайных чисел в sequence (issue#I51EJY@Gitee).
* 【core 】 JarClassLoader получил дополнительную конструкцию (pr#593@Gitee).
* 【core 】 Pid был добавлен для получения pid синглтона.
* 【core 】 Img получил функцию полного покрытия водяного знака pressTextFull (pr#595@Gitee).
* 【core 】 ByteUtil.numberToBytes получил проверку байтов (issue#2252@Github).
* 【core 】 CopyOptions получил конвертер, позволяющий настраивать преобразование типов, отличное от глобального.
* 【core 】 Возможность загрузки конфигурации базы данных из абсолютного пути была добавлена (pr#2253@Github).
### 🐞Исправления ошибок
* 【core 】 UserAgentUtil исправляет ошибки распознавания Linux (issue#I50YGY@Gitee).
* 【poi 】 Исправлена ошибка генерации метода getDisposition в ExcelWriter (issue#2239@Github).
* 【core 】 UrlBuilder исправляет проблему с повторным кодированием (issue#2243@Github).
* 【http 】 HttpRequest исправляет исключение нулевого указателя при обработке параметров GET запроса (pr#2248@Github).
* 【core 】 SimpleCache исправляет потенциальную проблему при использовании блокировки чтения в методе get.
* 【aop 】 JdkInterceptor исправляет проблему, когда return false в методе before всё равно вызывает выполнение перехвата after (issue#I5237G@Gitee).
-------------------------------------------------------------------------------------------------------------
# 5.8.0.M2 (2022-04-02)
### ❌Несовместимые функции
* 【extra 】 Возможно, проблема совместимости: изменение структуры ключей BeanCopierCache.
* 【http 】 Возможно, проблема совместимости: добавление обобщённых обозначений в HttpInterceptor, конфигурация в HttpRequest теперь суммируется в HttpConfig.
* 【core 】 Возможно, проблема совместимости: параметр addQuery в UrlQuery.addQuery изменился с String на Object.
* 【core 】 Возможно, проблема совместимости: реализация WorkbookUtil.createBook была изменена на WorkbookFactory.create.
### 🐣Новые функции
* 【core 】 MapUtil получил методы entry и ofEntries.
* 【core 】 ZipWriter получил перегруженный метод add.
* 【core 】 IterUtil получил filtered и FilterIter (issue#2228).
* 【core 】 NodeListIter и ResettableIter были добавлены.
* 【crypto 】 HmacAlgorithm получил SM4CMAC (issue#2206@Github).
* 【http 】 HttpConfig был добавлен, поддержка перехвата ответов (issue#2217@Github).
* 【core 】 BlockPolicy был добавлен, ThreadUtil получил метод newFixedExecutor (pr#2231@Github).
Опубликовать ( 0 )