You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2026/07/30 09:32:02 UTC

svn commit: r86360 - dev/commons/codec/1.22.1-RC1 dev/commons/codec/1.22.1-RC1/binaries dev/commons/codec/1.22.1-RC1/source release/commons/codec release/commons/codec/binaries release/commons/codec/source

Author: ggregory
Date: Thu Jul 30 09:32:02 2026
New Revision: 86360

Log:
Publish commons-codec 1.22.1 Release

Added:
   release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz
   release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.asc
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.asc
   release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.sha512
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.sha512
   release/commons/codec/binaries/commons-codec-1.22.1-bin.zip
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip
   release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.asc
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.asc
   release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.sha512
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.sha512
   release/commons/codec/source/commons-codec-1.22.1-src.tar.gz
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz
   release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.asc
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.asc
   release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.sha512
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.sha512
   release/commons/codec/source/commons-codec-1.22.1-src.zip
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip
   release/commons/codec/source/commons-codec-1.22.1-src.zip.asc
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.asc
   release/commons/codec/source/commons-codec-1.22.1-src.zip.sha512
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.sha512
Replaced:
   release/commons/codec/RELEASE-NOTES.txt
      - copied unchanged from r86359, dev/commons/codec/1.22.1-RC1/RELEASE-NOTES.txt
Deleted:
   dev/commons/codec/1.22.1-RC1/RELEASE-NOTES.txt
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.asc
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.sha512
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.asc
   dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.sha512
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.asc
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.sha512
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.asc
   dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.sha512

Copied: release/commons/codec/RELEASE-NOTES.txt (from r86359, dev/commons/codec/1.22.1-RC1/RELEASE-NOTES.txt)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/RELEASE-NOTES.txt	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/RELEASE-NOTES.txt)
@@ -0,0 +1,504 @@
+Apache Commons Codec 1.22.1 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.22.1.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+
+Fixed Bugs
+----------
+
+* CODEC-344:  Base64.Builder.setEncodeTable(byte...) accepts invalid custom alphabets. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-340:  Base58.Builder.setEncodeTable(byte...) is ignored when encoding and decoding. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-342:  Base32.Builder.setEncodeTable(byte...) can create a codec that cannot decode its own output. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-343:  Base32.Builder.setHexDecodeTable(boolean) sets the encode table to a decode lookup table. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-341:  Base16.Builder.setEncodeTable(byte...) can create a codec that cannot decode its own output. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-339:  URLCodec.encodeUrl(BitSet, byte[]) allows custom safe sets to emit URL encoding control characters. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-338:  PercentCodec loses literal '+' when plusForSpace is enabled. Thanks to Ruiqi Dong, Gary Gregory.
+* CODEC-337:  Digest ALL reuses System.in, so only the first algorithm sees the real input (#431). Thanks to Ruiqi Dong, Gary Gregory.
+*             Fix Base64.toIntegerBytes(BigInteger) for zero edge case (#441). Thanks to Gary Gregory.
+*             Add messages when throwing NullPointerException. Thanks to Gary Gregory.
+*             Add messages when throwing NullPointerException. Thanks to Gary Gregory.
+*             StringEncoderComparator.StringEncoderComparator(StringEncoder) now fails fast on null input. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 98 to 103. Thanks to Gary Gregory.
+*             Bump commons-io:commons-io from 2.21.0 to 2.22.0. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.22.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.22.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* CODEC-326:  Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff Bock von Wuelfingen.
+*             Add BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to Gary Gregory.
+* CODEC-335:  Add GitIdentifiers to compute Git blob and tree object identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CODEC-249:  Fix Incorrect transform of CH digraph according Metaphone basic rules #423. Thanks to Shalu Jha, Andrey, Gary Gregory.
+* CODEC-317:  ColognePhonetic can create duplicate consecutive codes in some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.
+*             Add boundary tests for BinaryCodec.fromAscii partial-bit inputs #425. Thanks to fancying, Gary Gregory.
+* CODEC-336:  Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly states null is accepted for primitive boolean parameter. Thanks to Partha Paul, Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 96 to 98. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.21.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.21.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+* CODEC-333:  Add distinct Base64 decoding for standard and URL-safe formats. Thanks to Aleksandr Beliakov, Gary Gregory.
+
+Fixed Bugs
+----------
+
+*             Fix oak leaf icon references in overview.html when running `mvn clean javadoc:javadoc`. Thanks to Gary Gregory.
+*             Fix Apache RAT plugin console warnings. Thanks to Gary Gregory.
+*             Fix malformed Javadoc comments. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 91 to 96 #415, #418. Thanks to Gary Gregory, Dependabot.
+*             Bump commons-io:commons-io from 2.20.0 to 2.21.0. Thanks to Gary Gregory.
+*             Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0. Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.20.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.20.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+*             Add org.apache.commons.codec.digest.Crc16. Thanks to Fredrik Kjellberg, Gary Gregory.
+*             Add builders to org.apache.commons.codec.digest streams and deprecate some old constructors. Thanks to Gary Gregory.
+*             Add builder to Base16 streams and deprecate some old constructors. Thanks to Gary Gregory.
+*             Add support for SHAKE128-256 and SHAKE256-512 to `DigestUtils` and `MessageDigestAlgorithms` on Java 25 and up. Thanks to Gary Gregory.
+*             Add BaseNCodec.AbstractBuilder.setDecodeTable(byte[]) and refactor subclasses. Thanks to Gary Gregory.
+
+
+Changes
+-------
+
+*             Deprecate all but one Base32 constructor in favor of the builder added in version 1.17.0. Thanks to Gary Gregory.
+*             Deprecate all but one Base64 constructor in favor of the builder added in version 1.17.0. Thanks to Gary Gregory.
+*             BaseNCodecInputStream subclasses are now type-safe to match its matching BaseNCodec. Thanks to Gary Gregory.
+*             BaseNCodecOutputStream subclasses are now type-safe to match its matching BaseNCodec. Thanks to Gary Gregory.
+*             Bump org.apache.commons:commons-parent from 85 to 91. Thanks to Gary Gregory, Dependabot.
+*             [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.19.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.19.0.
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+*             Add HmacUtils.hmac(Path). Thanks to Gary Gregory.
+*             Add HmacUtils.hmacHex(Path). Thanks to Gary Gregory.
+*             Add PMD check to the default Maven goal. Thanks to Gary Gregory.
+*             Add SpotBugs check to the default Maven goal. Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+*             Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
+*             Refactor DigestUtils.updateDigest(MessageDigest, File) to use NIO. Thanks to Gary Gregory.
+* CODEC-328:  Clarify Javadoc for org.apache.commons.codec.digest.UnixCrypt.crypt(byte[],String). Thanks to Gary Gregory.
+*             Precompile regular expressions in DaitchMokotoffSoundex.Rule. Thanks to Gary Gregory.
+*             Precompile regular expressions in DaitchMokotoffSoundex.parseRules(Scanner, String, Map, Map). Thanks to Gary Gregory.
+*             Precompile regular expressions in Lang.loadFromResource(String, Languages). Thanks to Gary Gregory.
+*             Precompile regular expressions in PhoneticEngine.encode(String, LanguageSet). Thanks to Gary Gregory.
+*             Precompile regular expressions in org.apache.commons.codec.language.bm.Rule.parse*(*). Thanks to Gary Gregory.
+*             Remove redundant checks for whitespace in DaitchMokotoffSoundex.soundex(String, boolean). Thanks to Gary Gregory.
+*             Javadoc typo in Base16.java #380. Thanks to Sebastian Baunsgaard.
+*             Deprecate unused constant org.apache.commons.codec.language.bm.Rule.ALL. Thanks to Gary Gregory.
+* CODEC-331:  org.apache.commons.codec.language.bm.Rule.parsePhonemeExpr(String) adds duplicate empty phoneme when input ends with |. Thanks to IlikeCode, Gary Gregory.
+* CODEC-331:  org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) does not remove special characters like punctuation. Thanks to IlikeCode, Gary Gregory.
+*             Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.binary.StringUtils. Thanks to Gary Gregory.
+*             Fix PMD UnusedFormalParameter in private constructor in org.apache.commons.codec.binary.Base16. Thanks to Gary Gregory.
+*             Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Blake3. Thanks to Gary Gregory.
+*             Fix PMD UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Md5Crypt. Thanks to Gary Gregory.
+*             Fix PMD EmptyControlStatement in org.apache.commons.codec.language.Metaphone. Thanks to Gary Gregory.
+*             Fix SpotBugs [ERROR] Medium: org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder.setEncodeTable(byte[]) may expose internal representation by storing an externally mutable object into BaseNCodec$AbstractBuilder.encodeTable [org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder] At BaseNCodec.java:[line 131] EI_EXPOSE_REP2. Thanks to Gary Gregory.
+*             The method org.apache.commons.codec.binary.BaseNCodec.AbstractBuilder.setLineSeparator(byte...) now makes a defensive copy. Thanks to Gary Gregory.
+*             Avoid unnecessary String conversion in org.apache.commons.codec.language.bm.PhoneticEngine.applyFinalRules(PhonemeBuilder, Map). Thanks to Gary Gregory.
+*             Fix SpotBugs [ERROR] High: Potentially dangerous use of non-short-circuit logic in org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) [org.apache.commons.codec.language.DaitchMokotoffSoundex] At DaitchMokotoffSoundex.java:[line 350] NS_DANGEROUS_NON_SHORT_CIRCUIT. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 79 to 85 #375. Thanks to Gary Gregory, Dependabot.
+*             [test] Bump commons-io:commons-io from 2.18.0 to 2.20.0. Thanks to Gary Gregory.
+*             [test] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 #386. Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+Apache Commons Codec 1.18.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.18.0. 
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+New features
+------------
+
+*             Add Base32.Builder.setHexDecodeTable(boolean). Thanks to Gary Gregory, Julian Reschke.
+*             Add Base32.Builder.setHexEncodeTable(boolean). Thanks to Gary Gregory, Julian Reschke.
+
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 78 to 79. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.2 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+
+Fixed Bugs
+----------
+
+*             Rewrite DaitchMokotoffSoundex.soundex(String) using String.join(). Thanks to Gary Gregory.
+* CODEC-324:  Use Resource.class to load resources, rather than its class loader #353. Thanks to Michael Froh.
+*             Deprecate CharSequenceUtils.CharSequenceUtils(). Thanks to Gary Gregory.
+*             Deprecate Sha2Crypt.Sha2Crypt(). Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #296, #305, #313. Thanks to Dependabot.
+*             Bump org.apache.commons:commons-parent from 71 to 78 #310, #312, #319, #323, #326, #333. Thanks to Gary Gregory.
+*             [test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #318, #341. Thanks to Gary Gregory, Dependabot.
+*             Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #332. Thanks to Gary Gregory, Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.1 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+
+Fixed Bugs
+----------
+
+*             Md5Crypt now throws IllegalArgumentException on an invalid prefix. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 69 to 71 #286. Thanks to Gary Gregory.
+*             Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #293. Thanks to Dependabot.
+*             Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #292. Thanks to Dependabot.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.17.0 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+
+New features
+------------
+
+*             Add override org.apache.commons.codec.language.bm.Rule.PhonemeExpr.size(). Thanks to Gary Gregory.
+*             Add support for Base64 custom alphabets #266. Thanks to Chris Kocel, Gary Gregory.
+*             Add Base64.Builder (allows custom alphabets). Thanks to Gary Gregory.
+*             Add Base32.Builder (allows custom alphabets). Thanks to Gary Gregory.
+*             Add Base64 support for a custom padding byte (like Base32). Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CODEC-320:  Wrong output of DoubleMetaphone in 1.16.1. Thanks to Martin Frydl, Gary Gregory.
+*             Optimize memory allocation in PhoneticEngine. Thanks to Gary Gregory.
+*             BCodec and QCodec encode() methods throw UnsupportedCharsetException instead of EncoderException. Thanks to Gary Gregory.
+*             Set Javadoc link to latest Java API LTS version. Thanks to Gary Gregory.
+*             Base32 constructor fails-fast with a NullPointerException if the custom alphabet array is null. Thanks to Gary Gregory.
+*             Base32 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory.
+*             Base64 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory.
+*             Base64 constructor makes a defensive copy of a custom alphabet array. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump org.apache.commons:commons-parent from 66 to 69 #250, #261. Thanks to Dependabot, Gary Gregory.
+*             Bump commons-io:commons-io from 2.15.1 to 2.16.1 #258, #265. Thanks to Dependabot, Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+Apache Commons Codec 1.16.1 Release Notes
+-----------------------------------------
+
+The Apache Commons Codec component contains encoders and decoders for
+various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release. Requires a minimum of Java 8.
+
+New features
+------------
+
+*             Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.
+
+Fixed Bugs
+----------
+
+* CODEC-295:  Test clean ups. Thanks to Gary Gregory.
+*             [StepSecurity] ci: Harden GitHub Actions #187. Thanks to step-security-bot, Gary Gregory.
+* CODEC-295:  Correct error in Base64 Javadoc #188. Thanks to Evan Saulpaugh.
+* CODEC-295:  Add minimum Java version in changes.xml #186. Thanks to Olivier Jaquemet, Gary Gregory.
+* CODEC-310:  Documentation update for the org.apache.commons.codec.digest.* package #208. Thanks to Yakov Shafranovich.
+*             Precompile regular expression in UnixCrypt.crypt(byte[], String). Thanks to Gary Gregory.
+* CODEC-315:  Fix possible IndexOutOfBoundException in PhoneticEngine.encode method #223. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-313:  Fix possible ArrayIndexOutOfBoundsException in QuotedPrintableCodec.encodeQuotedPrintable() method #221. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-312:  Fix possible StringIndexOutOfBoundException in MatchRatingApproachEncoder.encode() method #220. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-311:  Fix possible ArrayIndexOutOfBoundException in RefinedSoundex.getMappingCode() #219. Thanks to Arthur Chan, Gary Gregory.
+* CODEC-314:  Fix possible IndexOutOfBoundsException in PercentCodec.insertAlwaysEncodeChars() method #222. Thanks to Arthur Chan, Gary Gregory.
+*             Deprecate UnixCrypt 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate Md5Crypt 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate Crypt 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate StringUtils 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate Resources 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate Charsets 0-argument constructor. Thanks to Gary Gregory.
+*             Deprecate CharEncoding 0-argument constructor. Thanks to Gary Gregory.
+*             Add missing version for animal-sniffer-maven-plugin. Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump commons-parent from 58 to 66. Thanks to Dependabot, Gary Gregory.
+*             Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory.
+*             Bump commons-io from 2.13.0 to 2.15.1. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------
+
+              Apache Commons Codec 1.16.0
+
+The Apache Commons Codec package contains simple encoder and decoders for
+various formats such as Base64 and Hexadecimal.  In addition to these
+widely used encoders and decoders, the codec package also maintains a
+collection of phonetic encoding utilities.
+
+Feature and fix release.
+
+Changes in this version include:
+
+New features
+------------
+
+* CODEC-296:  Add support for Blake3 family of hashes. Thanks to Matt Sicker.
+*             Add github/codeql-action.
+
+Fixed Bugs
+----------
+
+* CODEC-295:  Minor improvements #67. Thanks to Arturo Bernal.
+*             Remove duplicated words from Javadocs. Thanks to James Gan.
+* CODEC-301:  Simplify assertion #84. Thanks to Alexander Pinske, Alex Herbert.
+* CODEC-300:  Simplify assertion #84. Thanks to Arturo Bernal.
+* CODEC-298:  Use Standard Charset object #82. Thanks to Arturo Bernal.
+*             Use String.contains() functions #125. Thanks to Arturo Bernal.
+*             Avoid use toString() or substring() in favor of a simplified expression #126. Thanks to Arturo Bernal.
+* CODEC-305:  Fix byte-skipping in Base16 decoding #135. Thanks to Florian.
+*             Fix several typos, improve writing in some javadocs #139. Thanks to Marc Wrobel.
+*             BaseNCodecOutputStream.eof() should not throw IOException. Thanks to Gary Gregory.
+*             Javadoc improvements and cleanups. Thanks to Gary Gregory.
+*             Deprecate BaseNCodec.isWhiteSpace(byte) and use Character.isWhitespace(int). Thanks to Gary Gregory.
+
+Changes
+-------
+
+*             Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138, #149, #152. Thanks to Dependabot, Gary Gregory.
+*             Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121. Thanks to Dependabot, Gary Gregory.
+*             Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153. Thanks to Dependabot, Gary Gregory.
+*             Bump commons-parent from 52 to 58, #147, #165, #170. Thanks to Dependabot, Gary Gregory.
+* CODEC-285:  Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148. Thanks to Dependabot, John Patrick.
+*             Bump Java 7 to 8. Thanks to Gary Gregory.
+*             Bump japicmp-maven-plugin from 0.14.3 to 0.17.1. Thanks to Gary Gregory.
+*             Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15 builds). Thanks to Gary Gregory.
+*             Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134. Thanks to Gary Gregory.
+*             Bump maven-javadoc-plugin from 3.2.0 to 3.4.1. Thanks to Gary Gregory.
+*             Bump animal-sniffer-maven-plugin from 1.19 to 1.22. Thanks to Gary Gregory.
+*             Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145. Thanks to Gary Gregory, Dependabot.
+*             Bump pmd from 6.47.0 to 6.52.0. Thanks to Gary Gregory.
+*             Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143. Thanks to Gary Gregory.
+*             Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103. Thanks to Dependabot.
+*             Bump taglist-maven-plugin from 2.4 to 3.0.0 #102. Thanks to Dependabot.
+*             Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
+
+
+For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Codec website:
+
+https://commons.apache.org/proper/commons-codec/
+
+Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi
+
+---------------------------------------------------------------------------------

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.asc (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.asc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.asc	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.asc)
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+
+iJEEABYKADkWIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCamaidhsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQUwql8lwlAR9zwAEA93SV637Y67AY3gRjs2S0
+jUZGmRvBTJ1synqAraLGNuUBAJ7ne6hKnY7yJkwVrENUX1NcNzjUF9mWUcPgJAU7
+HhEI
+=B6We
+-----END PGP SIGNATURE-----

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.sha512 (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.sha512)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.22.1-bin.tar.gz.sha512	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.tar.gz.sha512)
@@ -0,0 +1 @@
+62e0c1baad7ae28f7d458ad79f6a3b2820acb9dafe56eefad5acdbc3183e6f0fc82bb0e31332ea43cd5da03b46e0c291802e4784bfea75c6a733b1289279ae3b

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.zip (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.asc (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.asc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.asc	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.asc)
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+
+iJEEABYKADkWIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCamaidhsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQUwql8lwlAR9bPAD/QBkHnqajsztyA/OCEpm7
+Z5EXtTwMqHeGyqoRRXjBpgoBAJXNQ+udrS2ok3Z04My5GIWgzcf4h5GXYlJGiZRZ
+xRsA
+=5N5u
+-----END PGP SIGNATURE-----

Copied: release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.sha512 (from r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.sha512)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/binaries/commons-codec-1.22.1-bin.zip.sha512	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/binaries/commons-codec-1.22.1-bin.zip.sha512)
@@ -0,0 +1 @@
+15d6639c7a5b1e0835ae0b43831717aed89bdc5782cea218e581c3447a9b48b42b03632624d76733092725b260d98f78f52d848e224e4a8c8e9214b470d636bd

Copied: release/commons/codec/source/commons-codec-1.22.1-src.tar.gz (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.asc (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.asc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.asc	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.asc)
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+
+iJEEABYKADkWIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCamaidhsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQUwql8lwlAR99oAEA/zg/3Gqrx64fap2Q8cUL
+FhE7Ul4l/tV0vjwdz9JqZNYA/R4ohU5Qse3IeWvoEK1jeiIkpUkroG+XcGS0V8bR
+G24H
+=fhBQ
+-----END PGP SIGNATURE-----

Copied: release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.sha512 (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.sha512)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.22.1-src.tar.gz.sha512	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.tar.gz.sha512)
@@ -0,0 +1 @@
+7b1ed7920282028b35c70b2bdd58e05097a83c80177d8a9b952da92be775b9ac0d06aff988b7d43c5f58646153b0a4282063c6c3576723d109d42efc3975a72c

Copied: release/commons/codec/source/commons-codec-1.22.1-src.zip (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip)
==============================================================================
Binary file (source and/or target). No diff available.

Copied: release/commons/codec/source/commons-codec-1.22.1-src.zip.asc (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.asc)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.22.1-src.zip.asc	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.asc)
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+
+iJEEABYKADkWIQT03VnJAUi9xSvrkKRTCqXyXCUBHwUCamaidhsUgAAAAAAEAA5t
+YW51MiwyLjUrMS4xMiwwLDMACgkQUwql8lwlAR9ssQD+KrZrmtl6cunYiIbZpAzT
+YrD8P4k/xdKRCclyuv1tc7MA/iagr0hshNft9EU4tRek1aPZF/MVCgR5pAUDvWJS
+q9MA
+=FHft
+-----END PGP SIGNATURE-----

Copied: release/commons/codec/source/commons-codec-1.22.1-src.zip.sha512 (from r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.sha512)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ release/commons/codec/source/commons-codec-1.22.1-src.zip.sha512	Thu Jul 30 09:32:02 2026	(r86360, copy of r86359, dev/commons/codec/1.22.1-RC1/source/commons-codec-1.22.1-src.zip.sha512)
@@ -0,0 +1 @@
+533f12d752a744017e1b925c4cd995603bd071d2b94257e1adb21b0b8b59c97bf7515ea6a823cbfe0a03c98385a19c9f0a6b421418a319edf67c6eea54590ff5