Apache Commons logo Apache Commons Codec

Apache Commons Codec Release Notes

Release History

Version Date Description
1.16.1 2024-02-04 Feature and fix release. Requires a minimum of Java 8.
1.16.0 2023-06-17 Feature and fix release. Requires a minimum of Java 8.
1.15 2020-09-01 Feature and fix release.
1.14 2019-12-30 Feature and fix release.
1.13 2019-07-20 Feature and fix release.
1.12 2019-02-04 Feature and fix release. Requires a minimum of Java 7.
1.11 2017-10-20 Feature and fix release.
1.10 5 November 2014 Feature and fix release.
1.9 20 December 2013 Feature and fix release.
1.8 19 April 2013 Feature and fix release. Requires a minimum of Java 6.
1.7 11 September 2012 Feature and fix release. Requires a minimum of Java 6.
1.6 20 November 2011 Feature and fix release. Requires a minimum of Java 5.
1.5 29 March 2011 Feature and fix release. Requires a minimum of Java 1.4.
1.4 9 August 2009 Feature and fix release. Requires a minimum of Java 1.4.
1.3 10 July 2004 Feature and fix release.
1.2 24 Nov 2003 Feature and fix release.
1.1 29 April 2003 The first official release. Numerous projects had been depending on version 1.0-dev while in the Sandbox.
1.0-dev 25 April 2003 Last release from the Sandbox.

Release 1.16.1 – 2024-02-04

Type Changes By
Add Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory. ggregory
Fix Test clean ups. Fixes CODEC-295. Thanks to Gary Gregory. ggregory
Fix [StepSecurity] ci: Harden GitHub Actions #187. Thanks to step-security-bot, Gary Gregory. ggregory
Fix Correct error in Base64 Javadoc #188. Fixes CODEC-295. Thanks to Evan Saulpaugh. ggregory
Fix Add minimum Java version in changes.xml #186. Fixes CODEC-295. Thanks to Olivier Jaquemet, Gary Gregory. ggregory
Fix Documentation update for the org.apache.commons.codec.digest.* package #208. Fixes CODEC-310. Thanks to Yakov Shafranovich. ggregory
Fix Precompile regular expression in UnixCrypt.crypt(byte[], String). Thanks to Gary Gregory. ggregory
Fix Fix possible IndexOutOfBoundException in PhoneticEngine.encode method #223. Fixes CODEC-315. Thanks to Arthur Chan, Gary Gregory. ggregory
Fix Fix possible ArrayIndexOutOfBoundsException in QuotedPrintableCodec.encodeQuotedPrintable() method #221. Fixes CODEC-313. Thanks to Arthur Chan, Gary Gregory. ggregory
Fix Fix possible StringIndexOutOfBoundException in MatchRatingApproachEncoder.encode() method #220. Fixes CODEC-312. Thanks to Arthur Chan, Gary Gregory. ggregory
Fix Fix possible ArrayIndexOutOfBoundException in RefinedSoundex.getMappingCode() #219. Fixes CODEC-311. Thanks to Arthur Chan, Gary Gregory. ggregory
Fix Fix possible IndexOutOfBoundsException in PercentCodec.insertAlwaysEncodeChars() method #222. Fixes CODEC-314. Thanks to Arthur Chan, Gary Gregory. ggregory
Fix Deprecate UnixCrypt 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate Md5Crypt 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate Crypt 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate StringUtils 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate Resources 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate Charsets 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Deprecate CharEncoding 0-argument constructor. Thanks to Gary Gregory. ggregory
Fix Add missing version for animal-sniffer-maven-plugin. Thanks to Gary Gregory. ggregory
Update Bump commons-parent from 58 to 66. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory. ggregory
Update Bump commons-io from 2.13.0 to 2.15.1. Thanks to Gary Gregory. ggregory

Release 1.16.0 – 2023-06-17

Type Changes By
Fix Minor improvements #67. Fixes CODEC-295. Thanks to Arturo Bernal. ggregory
Fix Remove duplicated words from Javadocs. Thanks to James Gan. aherbert
Fix Simplify assertion #84. Fixes CODEC-301. Thanks to Alexander Pinske, Alex Herbert. aherbert
Fix Simplify assertion #84. Fixes CODEC-300. Thanks to Arturo Bernal. ggregory
Fix Use Standard Charset object #82. Fixes CODEC-298. Thanks to Arturo Bernal. ggregory
Fix Use String.contains() functions #125. Thanks to Arturo Bernal. ggregory
Fix Avoid use toString() or substring() in favor of a simplified expression #126. Thanks to Arturo Bernal. ggregory
Fix Fix byte-skipping in Base16 decoding #135. Fixes CODEC-305. Thanks to Florian. aherbert
Fix Fix several typos, improve writing in some javadocs #139. Thanks to Marc Wrobel. kinow
Fix BaseNCodecOutputStream.eof() should not throw IOException. Thanks to Gary Gregory. ggregory
Fix Javadoc improvements and cleanups. Thanks to Gary Gregory. ggregory
Fix Deprecate BaseNCodec.isWhiteSpace(byte) and use Character.isWhitespace(int). Thanks to Gary Gregory. ggregory
Add Add support for Blake3 family of hashes. Fixes CODEC-296. Thanks to Matt Sicker. mattsicker
Add Add github/codeql-action. ggregory
Update Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138, #149, #152. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump commons-parent from 52 to 58, #147, #165, #170. Thanks to Dependabot, Gary Gregory. ggregory
Update Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148. Fixes CODEC-285. Thanks to Dependabot, John Patrick. ggregory
Update Bump Java 7 to 8. Thanks to Gary Gregory. ggregory
Update Bump japicmp-maven-plugin from 0.14.3 to 0.17.1. Thanks to Gary Gregory. ggregory
Update Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15 builds). Thanks to Gary Gregory. ggregory
Update Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134. Thanks to Gary Gregory. ggregory
Update Bump maven-javadoc-plugin from 3.2.0 to 3.4.1. Thanks to Gary Gregory. ggregory
Update Bump animal-sniffer-maven-plugin from 1.19 to 1.22. Thanks to Gary Gregory. ggregory
Update Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145. Thanks to Gary Gregory, Dependabot. ggregory
Update Bump pmd from 6.47.0 to 6.52.0. Thanks to Gary Gregory. ggregory
Update Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143. Thanks to Gary Gregory. ggregory
Update Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103. Thanks to Dependabot. kinow, ggregory
Update Bump taglist-maven-plugin from 2.4 to 3.0.0 #102. Thanks to Dependabot. ggregory
Update Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. ggregory

Release 1.15 – 2020-09-01

Type Changes By
Fix MurmurHash3: Ensure hash128 maintains the sign extension bug. Fixes CODEC-264. Thanks to Andy Seaborne. aherbert
Update Base32/Base64/BCodec: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception. Fixes CODEC-280. aherbert
Update Base32/Base64 Input/OutputStream: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception. Fixes CODEC-289. aherbert
Update Update tests from JUnit 4.12 to 4.13. Thanks to Gary Gregory. ggregory
Add Base16Codec and Base16Input/OutputStream. Fixes CODEC-290. Thanks to Adam Retter. aherbert
Add Hex encode/decode with existing arrays. Fixes CODEC-291. Thanks to Adam Retter. aherbert
Update Update actions/checkout from v1 to v2.3.2 #50, #56. Thanks to Dependabot. ggregory
Update Update actions/setup-java from v1.4.0 to v1.4.1 #57. Thanks to Dependabot. ggregory

Release 1.14 – 2019-12-30

Type Changes By
Fix Hex: Allow encoding read-only ByteBuffer. Fixes CODEC-261. aherbert
Fix Hex: Only use an available ByteBuffer backing array if the length equals the remaining byte count. Fixes CODEC-259. aherbert
Update MurmurHash3: Deprecate hash64 methods and hash methods accepting a String that use the default encoding. Fixes CODEC-268. aherbert
Fix BaseNCodec to expand buffer using overflow conscious code. Fixes CODEC-265. aherbert
Fix Base32/64: Fixed decoding check that all the final trailing bits to discard are zero. Fixes CODEC-270. aherbert
Add Add MurmurHash3.hash128x64 methods to fix sign extension error during seeding in hash128 methods. Fixes CODEC-264. Thanks to Claude Warren. aherbert
Add Add MurmurHash3.hash32x86 methods and IncrementalHash32x86 to fix sign extension error in hash32 methods. Fixes CODEC-267. Thanks to Claude Warren. aherbert
Fix Allow repeat calls to MurmurHash3.IncrementalHash32.end() to generate the same value. Fixes CODEC-269. aherbert
Add Add RandomAccessFile digest methods #31. Fixes CODEC-272. Thanks to Behrang, Alex Herbert, Gary Gregory. ggregory
Add Add Path APIs to org.apache.commons.codec.digest.DigestUtils similar to File APIs. Fixes CODEC-273. Thanks to Gary Gregory. ggregory
Add Add SHA-512/224 and SHA-512/256 to DigestUtils for Java 9 and up. Fixes CODEC-274. Thanks to Gary Gregory. ggregory
Add Add missing note in javadoc when sign extension error is present #34. Fixes CODEC-275. Thanks to Claude Warren. ggregory
Fix Reliance on default encoding in MurmurHash2 and MurmurHash3. Fixes CODEC-276. Thanks to Gary Gregory. ggregory
Update Don't reload standard Charsets in org.apache.commons.codec.Charsets. Fixes CODEC-277. Thanks to Gary Gregory. ggregory
Update Deprecate Charset constants in org.apache.commons.codec.Charsets in favor of java.nio.charset.StandardCharsets. Fixes CODEC-278. Thanks to Gary Gregory. ggregory

Release 1.13 – 2019-07-20

Type Changes By
Fix ColognePhonetic handles x incorrectly. Fixes CODEC-255. Thanks to Holger Grote. sebb
Fix ColognePhonetic does not treat the letter H correctly. Fixes CODEC-254. Thanks to Holger Grote. sebb
Fix Reject any decode request for a value that is impossible to encode to for Base32/Base64 rather than blindly decoding. Fixes CODEC-134. tmousaw-ptc
Add MurmurHash2 for 32-bit or 64-bit value. Fixes CODEC-236. Thanks to Viliam Holub. melloware
Add MurmurHash3 for 32-bit or 128-bit value. Fixes CODEC-236. Thanks to Austin Appleby. melloware
Update Broken direct java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex. Fixes CODEC-236. Thanks to Tomas Shestakov, Gary Gregory. ggregory

Release 1.12 – 2019-02-04

Type Changes By
Fix B64 salt generator: Random -> ThreadLocalRandom. Fixes CODEC-252. chtompki
Fix Wrong value calculated by Cologne Phonetic if a special character is placed between equal letters. Fixes CODEC-250. Thanks to Alex Volodko. sebb
Update Update from Java 6 to Java 7. Fixes CODEC-244. ggregory
Add Add Percent-Encoding Codec (described in RFC3986 and RFC7578). Fixes CODEC-240. Thanks to Ioannis Sermetziadis. ggregory
Fix ColognePhoneticTest.testIsEncodeEquals missing assertions. Fixes CODEC-246. Thanks to Oscar Luis Vera Pérez. ggregory
Add Add SHA-3 methods in DigestUtils. Fixes CODEC-251. Thanks to Gary Gregory. ggregory

Release 1.11 – 2017-10-20

Type Changes By
Add Add support for XXHash32. Fixes CODEC-241.
Update Base32.decode should support lowercase letters. Fixes CODEC-234. Thanks to Christopher Schultz, Sebb. ggregory
Update Soundex should support more algorithm variants. Fixes CODEC-233. Thanks to Yossi Tamari. sebb
Fix Base64.encodeBase64String could better use newStringUsAscii (ditto encodeBase64URLSafeString). Fixes CODEC-145. Thanks to Jesse Glick. sebb
Fix BaseNCodec: encodeToString and encodeAsString methods are identical. Fixes CODEC-144. sebb
Fix URLCodec is neither immutable nor threadsafe. Fixes CODEC-232. sebb
Fix StringUtils.equals(CharSequence cs1, CharSequence cs2) can fail with String Index OBE. Fixes CODEC-231. sebb
Fix URLCodec.WWW_FORM_URL should be private. Fixes CODEC-230. sebb
Fix StringUtils.newStringxxx(null) should return null, not NPE. Fixes CODEC-229. sebb
Add Fluent interface for DigestUtils. Fixes CODEC-220. sebb
Add Fluent interface for HmacUtils. Fixes CODEC-222. sebb
Fix Fix minor resource leaks. Fixes CODEC-225. Thanks to Svetlin Zarev. jochen
Remove Drop obsolete Ant build. Fixes CODEC-223. sebb
Add Add support for CRC32-C. Fixes CODEC-171. Thanks to Brett Okken. sebb
Update HmacUtils.updateHmac calls reset() unnecessarily. Fixes CODEC-221. sebb
Fix Base32.HEX_DECODE_TABLE contains the wrong value 32. Fixes CODEC-200. Thanks to Luciano Vernaschi. sebb
Fix Charsets Javadoc breaks build when using Java 8. Fixes CODEC-207. Thanks to Gary Gregory. ggregory
Fix Bug in HW rule in Soundex. Fixes CODEC-199. Thanks to Yossi Tamari. ggregory/sebb
Fix Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0 restriction instead of 1.4.0. Fixes CODEC-209. Thanks to Gary Gregory. ggregory
Fix Don't deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets. Fixes CODEC-219. Thanks to Gary Gregory, Sebb. ggregory
Add Add HmacAlgorithms.HMAC_SHA_224 (Java 8 only). Fixes CODEC-217. Thanks to Gary Gregory. ggregory
Add Support JEP 287: SHA-3 Hash Algorithms. Fixes CODEC-213. Thanks to Gary Gregory. ggregory
Add Create a minimal Digest command line utility: org.apache.commons.codec.digest.Digest. Fixes CODEC-212. Thanks to Gary Gregory. ggregory
Add Add DigestUtils.getDigest(String, MessageDigest). Fixes CODEC-210. Thanks to Gary Gregory. ggregory
Add Make some DigestUtils APIs public. Fixes CODEC-208. Thanks to Gary Gregory. ggregory
Add Add java.io.File APIs to MessageDigestAlgorithm. Fixes CODEC-206. Thanks to Gary Gregory. ggregory
Add BaseNCodecOutputStream only supports writing EOF on close(). Fixes CODEC-183. Thanks to Steven Wurster. ggregory
Add Support SHA-224 in DigestUtils on Java 8. Fixes CODEC-195. Thanks to Gary Gregory. ggregory
Add Support java.nio.ByteBuffer in org.apache.commons.codec.binary.Hex. Fixes CODEC-194. Thanks to Gary Gregory. ggregory
Add Support java.nio.ByteBuffer in DigestUtils. Fixes CODEC-193. Thanks to Michael Donaghy. ggregory
Add Add BaseNCodec.encode(byte[], int, int) input with offset and length parameters for Base64 and Base32. Fixes CODEC-202. Thanks to Oleg Kalnichevski. ggregory
Add Add convenience method decodeHex(String). Fixes CODEC-203. Thanks to Gary Gregory. ggregory
Add Add faster CRC32 implementation. Fixes CODEC-205. Thanks to Gary Gregory. ggregory
Add Add convenience API org.apache.commons.codec.binary.Hex.encodeHexString(byte[]|ByteBuffer, boolean). Fixes CODEC-224. Thanks to Gary Gregory. ggregory
Add Add Automatic-Module-Name manifest entry for Java 9. Fixes CODEC-242. Thanks to Gary Gregory. ggregory

Release 1.10 – 5 November 2014

Type Changes By
Add Add Daitch-Mokotoff Soundex. Fixes CODEC-192. Thanks to Thomas Neidhart. ggregory
Add QuotedPrintableCodec does not support soft line break per the 'quoted-printable' example on Wikipedia. Fixes CODEC-121. Thanks to Thomas Neidhart, Java John. ggregory
Fix Added clarification to Javadoc of Base64 concerning the use of the urlSafe parameter. Fixes CODEC-185. Thanks to Sean Busbey. tn
Fix Added clarification to the Javadoc of Base[32|64]OutputStream that it is mandatory to call close(). Fixes CODEC-191. Thanks to Igor Savin. tn
Fix Add support for HMAC Message Authentication Code (MAC) digests. Fixes CODEC-188. Thanks to Hendrik Saly. ggregory
Fix Beider Morse Phonetic Matching producing incorrect tokens. Fixes CODEC-187. Thanks to Michael Tobias, Thomas Neidhart. ggregory
Fix NullPointerException in DoubleMetaPhone.isDoubleMetaphoneEqual when using empty strings. Fixes CODEC-184. Thanks to Cyrille Artho. ggregory
Add Make possible to provide padding byte to BaseNCodec in constructor. Fixes CODEC-181. Thanks to Ivan Martinez-Ortiz. ggregory
Fix Fix Javadoc 1.8.0 errors. Fixes CODEC-180. Thanks to Ville Skyttä. ggregory
Update Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets. Fixes CODEC-178. ggregory
Fix Fix Java 8 build Javadoc errors. Fixes CODEC-189. ggregory
Update Update from commons-parent 34 to 35. Fixes CODEC-190. ggregory

Release 1.9 – 20 December 2013

Type Changes By
Update Improve performance of Beider Morse encoder. Fixes CODEC-174. Thanks to Thomas Champagne. ggregory
Fix Beider Morse does not close Scanners used to read config files. Fixes CODEC-175. ggregory
Fix Base32 decode table has spurious value. Fixes CODEC-172. Thanks to Matt Bishop. sebb
Fix Link broken in Metaphone Javadoc. Fixes CODEC-170. Thanks to Ron Wheeler, Henri Yandell. ggregory
Fix Spelling fixes in Javadoc and comments. Fixes CODEC-176. Thanks to Ville Skyttä. ggregory

Release 1.8 – 19 April 2013

Type Changes By
Add Add DigestUtils.updateDigest(MessageDigest, InputStream). Fixes CODEC-168. Thanks to Daniel Cassidy. ggregory
Add Add JUnit to test our decode with pad character in the middle. Fixes CODEC-167. julius
Add Add Match Rating Approach (MRA) phonetic algorithm encoder. Fixes CODEC-161. Thanks to crice. ggregory
Fix ColognePhonetic encoder unnecessarily creates many char arrays on every loop run. Fixes CODEC-163. Thanks to leo141. ggregory
Fix Base64.encodeBase64URLSafeString doesn't add padding characters at the end. Fixes CODEC-160. sebb

Release 1.7 – 11 September 2012

Type Changes By
Add DigestUtils: Add MD2 APIs. Fixes CODEC-157. Thanks to ggregory. ggregory
Add DigestUtils: add APIs named after standard algorithm name SHA-1. Fixes CODEC-156. Thanks to ggregory. ggregory
Add DigestUtils.getDigest(String) should throw IllegalArgumentException instead of RuntimeException. Fixes CODEC-155. Thanks to ggregory. ggregory
Add Create a class MessageDigestAlgorithms to define standard algorithm names. Fixes CODEC-153. Thanks to ggregory. ggregory
Add DigestUtils.getDigest(String) loses the original exception. Fixes CODEC-152. Thanks to ggregory. ggregory
Add Remove unnecessary attempt to fill up the salt variable in UnixCrypt. Fixes CODEC-151. Thanks to lathspell. ggregory
Add Remove unnecessary call to Math.abs(). Fixes CODEC-150. Thanks to lathspell. ggregory
Add More tests and minor things. Fixes CODEC-148. Thanks to lathspell. ggregory
Add Added regression tests for PhoneticEngine based on Solr-3.6.0. Fixes CODEC-146. Thanks to Julius Davies. tn
Update BeiderMorseEncoder/PhoneticEngine: make results deterministic by using a LinkedHashSet instead of a HashSet. Fixes CODEC-147. tn
Update StringBuffer could be replaced by StringBuilder for local variables. Fixes CODEC-143. sebb
Add DigestUtils: add updateDigest methods and make methods public. Fixes CODEC-139. Thanks to dsebastien. ggregory
Add Add classes for MD5/SHA1/SHA-512-based Unix crypt(3) hash variants. Fixes CODEC-133. Thanks to lathspell. ggregory
Fix Base64 encode() method is no longer thread-safe, breaking clients using it as a shared BinaryEncoder. Note: the fix breaks binary compatibility, however the changes are to a class (BaseNCodec) which is intended for internal use. Fixes CODEC-96. Thanks to sebb. ggregory
Fix Complete FilterInputStream interface for BaseNCodecInputStream. Fixes CODEC-138. sebb
Fix Use Charset objects when possible, create Charsets for required character encodings. Fixes CODEC-136. ggregory
Fix BeiderMorseEncoder OOM issues. Fixes CODEC-132. Thanks to rcmuir. ggregory
Fix DoubleMetaphone Javadoc contains dead links. Fixes CODEC-131. Thanks to smolav. tn
Add Base64InputStream.skip skips underlying stream, not output. Fixes CODEC-130. Thanks to tn. ggregory
Add Implement NYSIIS phonetic encoder. Fixes CODEC-63. Thanks to tn. ggregory

Release 1.6 – 20 November 2011

Type Changes By
Fix Use standard Maven directory layout. Fixes CODEC-129. Thanks to ggregory. ggregory
Fix Documentation spelling fixes. Fixes CODEC-128. Thanks to ville.skytta@iki.fi. ggregory
Fix Fix various character encoding issues in comments and test cases. Fixes CODEC-127. ggregory, sebb
Update Implement a Beider-Morse phonetic matching codec. Fixes CODEC-125. Thanks to Matthew Pocock. ggregory, matthewpocock
Update Migrate to Java 5. Fixes CODEC-119. ggregory
Update Migrate to JUnit 4. Fixes CODEC-120. ggregory
Fix ColognePhonetic Javadoc should use HTML entities for special characters. Fixes CODEC-123. ggregory

Release 1.5 – 29 March 2011

Type Changes By
Add Added new Base32 encoder. Fixes CODEC-88. sebb
Fix new Base64().encode() appends a CRLF, and chunks results into 76 character lines. Fixes CODEC-89. sebb
Fix Many test cases use getBytes() which uses the default platform encoding so tests may fail on some platforms. Fixes CODEC-92. sebb
Add Add test(s) to check that encodeBase64() does not chunk output. Fixes CODEC-93. Thanks to sebb. sebb, julius, ggregory
Fix Base64 default constructor behavior changed to enable chunking in 1.4. Fixes CODEC-97. Thanks to mjryall. sebb
Fix Base64.encodeBase64String() shouldn't chunk. Fixes CODEC-99. Thanks to julius. ggregory
Fix Base64InputStream#read(byte[]) incorrectly returns 0 at end of any stream which is multiple of 3 bytes long. Fixes CODEC-101. Thanks to balusc. julius
Fix Typo in DecoderException message thrown from Hex.decodeHex. Fixes CODEC-103. Thanks to gnuf. bayard
Add ArrayIndexOutOfBoundsException when doing multiple reads() on encoding Base64InputStream. Fixes CODEC-105. Thanks to zak. julius, ggregory
Add Add the "Kölner Phonetik" encoder (Cologne Phonetic) to codec.lang. Fixes CODEC-106. Thanks to it2mmeyerfa. bayard
Add org.apache.commons.codec.net.URLCodec.ESCAPE_CHAR isn't final but should be. Fixes CODEC-111. Thanks to ggregory. ggregory
Add Base64.encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize) throws IAE for valid maxResultSize if isChunked is false. Fixes CODEC-112. Thanks to sebb. sebb
Add org.apache.commons.codec.language.RefinedSoundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE. Fixes CODEC-113. Thanks to ggregory. ggregory
Add org.apache.commons.codec.language.Soundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE. Fixes CODEC-114. Thanks to ggregory. ggregory
Add DoubleMetaphone.maxCodeLen should probably be private. Fixes CODEC-115. Thanks to sebb. ggregory
Remove Remove deprecated package private method Base64.discardWhitespace(byte[]). Fixes CODEC-116. Thanks to ggregory. ggregory
Fix Caverphone encodes names starting and ending with "mb" incorrectly. Fixes CODEC-117. Thanks to ggregory. ggregory
Add Split Caverphone class into two classes for Caverphone 1.0 and 2.0. Fixes CODEC-118. Thanks to ggregory. ggregory

Release 1.4 – 9 August 2009

Type Changes By
Fix Regression: Base64.encode(chunk=true) has a bug when input length is multiple of 76. Fixes CODEC-80. Thanks to Julius Davies. ggregory
Fix Base64 bug with empty input (new byte[0]). Fixes CODEC-77. Thanks to Julius Davies. ggregory
Fix Make Base64 URL-safe. Fixes CODEC-75. Thanks to Julius Davies. ggregory
Add Allow for uppercase letters output in Hex.encodeHex(). Fixes CODEC-74. ggregory
Fix Soundex and RefinedSoundex issues with character arrays. Fixes CODEC-72. Thanks to Sebb. bayard
Fix Base64.isArrayByteBase64() method is inefficient for large byte arrays. Fixes CODEC-71. Thanks to Sebb. bayard
Fix Thread safety and malicious code safety improvements. Fixes CODEC-70. Thanks to Sebb. bayard
Fix isBase64 throws ArrayIndexOutOfBoundsException on some non-BASE64 bytes. Fixes CODEC-68. Thanks to Robert Rodewald. bayard
Fix Fix case-insensitive string handling. Fixes CODEC-65. Thanks to Benjamin Bentmann. bayard
Fix Base64.encodeBase64() throws NegativeArraySizeException on large files. Fixes CODEC-61. Thanks to Igor Slepchin. ggregory
Add Implement Caverphone. Fixes CODEC-60. bayard
Fix Character set used by Base64 not documented. Fixes CODEC-58. Thanks to Julius Davies. ggregory
Fix RefinedSoundex creates instance before al fields have been initialized. Fixes CODEC-56. Thanks to Sebb. bayard
Add Digest on InputStreams. Fixes CODEC-52. Thanks to Niklas Gustavsson. bayard
Fix 2 Test failures in SoundexTest. Fixes CODEC-51. bayard
Add Patch to add crypto-compatible BigInteger encoding support to Base64. Fixes CODEC-40. Thanks to Chris Black. bayard
Add DigestUtils: Add methods for SHA-256, SHA-384, and SHA-512. Fixes CODEC-39. Thanks to Jamie Flournoy. ggregory
Fix Using US_ENGLISH in Soundex caused an NullPointerException. Fixes CODEC-10. Thanks to Reggie Riser. tobrien
Fix Source tarball spews files all over the place. Fixes CODEC-6. Thanks to David Tonhofer. tobrien
Fix Base64.isArrayByteBase64() throws an ArrayIndexOutOfBoundsException for negative octets. Fixes CODEC-22. Thanks to Piero Ottuzzi. ggregory
Add Streaming Base64 (Base64InputStream and Base64OutputStream added). Fixes CODEC-69. Thanks to Julius Davies. jochen
Fix Base64: Improve Code Coverage. Fixes CODEC-78. Thanks to Julius Davies. ggregory
Add Add methods to Base64 which work with String instead of byte[]. Fixes CODEC-59. Thanks to Julius Davies. ggregory
Fix Base64's new constructor parameters ignored. Fixes CODEC-81. Thanks to Julius Davies. ggregory
Fix Improve Double Metaphone test coverage. Fixes CODEC-83. niallp
Fix Double Metaphone bugs in alternative encoding. Fixes CODEC-84. niallp
Fix Make string2byte conversions independent of platform default encoding. Fixes CODEC-73. Thanks to Benjamin Bentmann. ggregory

Release 1.3 – 10 July 2004

Type Changes By
Add BinaryCodec: Encodes and decodes binary to and from Strings of 0s and 1s. Fixes CODEC-21. Thanks to Alex Karasulu. ggregory, tobrien
Add QuotedPrintableCodec: Codec for RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One. Rules #3, #4, and #5 of the quoted-printable spec are not implemented yet. See also issue CODEC-46. Fixes CODEC-41. Thanks to Oleg Kalnichevski. ggregory
Add BCodec: Identical to the Base64 encoding defined by RFC 1521 and allows a character set to be specified. Fixes CODEC-41. Thanks to Oleg Kalnichevski. ggregory
Add QCodec: Similar to the Quoted-Printable content-transfer-encoding defined in RFC 1521 and designed to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding. Fixes CODEC-41. Thanks to Oleg Kalnichevski. ggregory
Add Soundex: Implemented the DIFFERENCE algorithm. Fixes CODEC-45. Thanks to Matthew Inger. ggregory
Add RefinedSoundex: Implemented the DIFFERENCE algorithm. Fixes CODEC-45. Thanks to Matthew Inger. ggregory
Update This version is released under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> , please see LICENSE.txt. Previous versions were released under the <a href="http://www.apache.org/licenses/LICENSE-1.1">Apache License 1.1</a> ggregory
Update The Board recommendation to remove Javadoc author tags has been implemented. All author tags are now "Apache Software Foundation". ggregory
Fix The default URL encoding logic was broken. Fixes CODEC-25. Thanks to Oleg Kalnichevski. ggregory
Fix Base64 chunked encoding not compliant with RFC 2045 section 2.1 CRLF. Fixes CODEC-31. Thanks to Gary D. Gregory. ggregory
Fix Hex converts illegal characters to 255. Fixes CODEC-5. ggregory
Fix Metaphone now correctly handles a silent B in a word that ends in MB. "COMB" is encoded as "KM", before this fix "COMB" was encoded as "KMB". Fixes CODEC-17. tobrien
Fix Added missing tags in Javadoc comments. ggregory
Fix General Javadoc improvements. ggregory

Release 1.2 – 24 Nov 2003

Type Changes By
Add URLCodec: Implements the www-form-urlencoded encoding scheme. Thanks to Oleg Kalnichevski. tobrien
Add DigestUtils: Calculates MD5 and SHA digests. Thanks to Dave Dribin, David Graham. tobrien
Fix Modified Base64 to remedy non-compliance with RFC 2045. Non-Base64 characters were not being discarded during the decode. RFC 2045 explicitly states that all characters outside of the base64 alphabet are to be ignored. Fixes CODEC-26. Thanks to Brian Ewins. tobrien
Fix Hex.decode(Object) throws a ClassCastException when a String argument is passed in. Fixes CODEC-4. ggregory
Fix Soundex: The HW rule is not applied; hyphens and apostrophes are not ignored. Fixes CODEC-3. ggregory
Fix Soundex.setMaxLength causes bugs and is not needed. Calling Soundex.setMaxLength() with a value of 2 or less causes the wrong answer to be returned. Since the encoding returned by Soundex is always of length 4 by definition (we do not use the '-' in as a letter-nnn separator) the need for a maxLength attribute is not needed. Deprecate the field and accessor methods. Fixes CODEC-29. ggregory
Fix Fix in Metaphone relating to the handling of the maximum code length. Members

Release 1.1 – 29 April 2003

Type Changes By
Add A newer version of the Base64 class reflecting improvements from both the commons-httpclient and xml-rpc versions of code forked from catalina. Members
Add Base64 class from commons-httpclient in org.apache.commons.codec.base64 has been retained for backwards compatibility but has been deprecated. Members
Add Soundex class from commons-util in org.apache.commons.codec. Members
Add Metaphone class from commons-util in org.apache.commons.codec. Members
Add RefinedSoundex class in org.apache.commons.codec. tobrien
Add Encoder/Decoder interfaces in org.apache.commons. Members
Add String and Binary specific Encoder/Decoder interfaces in org.apache.commons. Members
Add StringEncoderComparator replaces the SoundexComparator from the language package. Members
Fix Base64 now discards whitespace characters when decoding encoded content. Members

Release 1.0-dev – 25 April 2003

Type Changes By
Add Base64 class from commons-httpclient in org.apache.commons.codec.base64. tobrien
Add Soundex class from commons-util in org.apache.commons.codec. tobrien
Add Metaphone class from commons-util in org.apache.commons.codec. tobrien
Add SoundexComparator class from commons-util in org.apache.commons.codec. Members