Skip to content

Add boundary tests for BinaryCodec.fromAscii partial-bit inputs#425

Merged
garydgregory merged 2 commits intoapache:masterfrom
pdtx:binarycodec-boundary-tests
Feb 27, 2026
Merged

Add boundary tests for BinaryCodec.fromAscii partial-bit inputs#425
garydgregory merged 2 commits intoapache:masterfrom
pdtx:binarycodec-boundary-tests

Conversation

@pdtx
Copy link
Copy Markdown
Contributor

@pdtx pdtx commented Feb 27, 2026

Summary

  • Add boundary tests for BinaryCodec.fromAscii(byte[]) and BinaryCodec.fromAscii(char[]) when input length is less than 8 bits.
  • Add boundary tests for non-multiple-of-8 input lengths to assert the current decoding behavior where extra leading bits are ignored.
  • Add a direct null-contract test for BinaryCodec.toAsciiString(byte[]).

Why

Current tests cover null/empty and exact 8-bit aligned inputs, but do not explicitly cover short non-empty inputs or partial-bit-length inputs.
These boundary cases are easy to regress (for example, through off-by-one or grouping changes), so explicit tests improve behavioral stability.

Verification

  • Ran mvn -Dtest=BinaryCodecTest test
  • Result: all tests passed

Copy link
Copy Markdown
Member

@garydgregory garydgregory left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @pdtx

Thank you for your PR.

Update the existing testFromAsciiCharArray(), testFromAsciiByteArray(), and testToAsciiString().

Thank you!


@Test
void testToAsciiStringNullReturnsEmptyString() {
assertEquals("", BinaryCodec.toAsciiString(null));
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make this edge case the first assertion in testToAsciiString().

@pdtx
Copy link
Copy Markdown
Contributor Author

pdtx commented Feb 27, 2026

Thanks for the review. Updated as requested: I folded the new assertions into the existing testFromAsciiCharArray(), testFromAsciiByteArray(), and testToAsciiString() methods, and removed the standalone test methods.

@pdtx pdtx force-pushed the binarycodec-boundary-tests branch from 70436c2 to 3da6d7a Compare February 27, 2026 14:23
@garydgregory
Copy link
Copy Markdown
Member

Hello @pdtx

Thank you for the update.

Please rebate on git master.

@pdtx
Copy link
Copy Markdown
Contributor Author

pdtx commented Feb 27, 2026

Thanks for the note. Rebased on the latest master, resolved conflicts, and force-pushed the branch.

@garydgregory garydgregory merged commit 7789636 into apache:master Feb 27, 2026
9 checks passed
@garydgregory
Copy link
Copy Markdown
Member

garydgregory commented Feb 27, 2026

@pdtx
Merged, ty! 👍

ACANX pushed a commit to ACANX/MetaOpen that referenced this pull request Apr 26, 2026
…1422)

Bumps
[commons-codec:commons-codec](https://github.com/apache/commons-codec)
from 1.21.0 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.21.0...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.21.0&new-version=1.22.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
jolarsen pushed a commit to navikt/fp-bom that referenced this pull request Apr 26, 2026
…1285)

Bumps
[commons-codec:commons-codec](https://github.com/apache/commons-codec)
from 1.21.0 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.21.0...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.21.0&new-version=1.22.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to B3Partners/brmo that referenced this pull request Apr 28, 2026
Bumps
[commons-codec:commons-codec](https://github.com/apache/commons-codec)
from 1.21.0 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.21.0...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.21.0&new-version=1.22.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
baskevold pushed a commit to navikt/ung-sak that referenced this pull request Apr 28, 2026
…tes (#1321)

Bumps the annet-deps group with 4 updates in the / directory:
commons-io:commons-io,
[commons-codec:commons-codec](https://github.com/apache/commons-codec),
[org.javassist:javassist](https://github.com/jboss-javassist/javassist)
and [org.jsoup:jsoup](https://github.com/jhy/jsoup).

Updates `commons-io:commons-io` from 2.21.0 to 2.22.0

Updates `commons-codec:commons-codec` from 1.21.0 to 1.22.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.21.0...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `org.javassist:javassist` from 3.30.2-GA to 3.31.0-GA
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jboss-javassist/javassist/releases">org.javassist:javassist's
releases</a>.</em></p>
<blockquote>
<h2>Javassist 3.31.0-GA</h2>
<h2>What's Changed</h2>
<ul>
<li>improve pom by <a
href="https://github.com/oldratlee"><code>@​oldratlee</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/477">jboss-javassist/javassist#477</a></li>
<li>support bootstrap method coping when using code coping by <a
href="https://github.com/likey3"><code>@​likey3</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/480">jboss-javassist/javassist#480</a></li>
<li>Line numbers support by <a
href="https://github.com/kuznet1"><code>@​kuznet1</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/484">jboss-javassist/javassist#484</a></li>
<li>[bugfix]fix TransformCallToStatic with invokeinterface or
invokedynamic by <a
href="https://github.com/catsalty"><code>@​catsalty</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/486">jboss-javassist/javassist#486</a></li>
<li>reduced InnerClasses propagation by <a
href="https://github.com/jbellenger"><code>@​jbellenger</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/491">jboss-javassist/javassist#491</a></li>
<li>Fix wrong line numbers in some cases by <a
href="https://github.com/kuznet1"><code>@​kuznet1</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/492">jboss-javassist/javassist#492</a></li>
<li>ignoring unnecessarily generated surefire report by <a
href="https://github.com/Talank"><code>@​Talank</code></a> in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/506">jboss-javassist/javassist#506</a></li>
<li>Add Record and PermittedSubclasses (sealed) Attributes by <a
href="https://github.com/Asbestosstar"><code>@​Asbestosstar</code></a>
in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/495">jboss-javassist/javassist#495</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/likey3"><code>@​likey3</code></a> made
their first contribution in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/480">jboss-javassist/javassist#480</a></li>
<li><a href="https://github.com/kuznet1"><code>@​kuznet1</code></a> made
their first contribution in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/484">jboss-javassist/javassist#484</a></li>
<li><a
href="https://github.com/jbellenger"><code>@​jbellenger</code></a> made
their first contribution in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/491">jboss-javassist/javassist#491</a></li>
<li><a href="https://github.com/Talank"><code>@​Talank</code></a> made
their first contribution in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/506">jboss-javassist/javassist#506</a></li>
<li><a
href="https://github.com/Asbestosstar"><code>@​Asbestosstar</code></a>
made their first contribution in <a
href="https://redirect.github.com/jboss-javassist/javassist/pull/495">jboss-javassist/javassist#495</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jboss-javassist/javassist/compare/rel_3_30_2_ga...rel_3_31_0_ga">https://github.com/jboss-javassist/javassist/compare/rel_3_30_2_ga...rel_3_31_0_ga</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jboss-javassist/javassist/blob/master/Changes.md">org.javassist:javassist's
changelog</a>.</em></p>
<blockquote>
<h3>Changes</h3>
<h3>version 3.31.0 on April 20, 2026</h3>
<ul>
<li>GitHub PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/480">#480</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/484">#484</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/486">#486</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/491">#491</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/492">#492</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/495">#495</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/506">#506</a></li>
</ul>
<h3>version 3.30.2 on December 25, 2023</h3>
<ul>
<li>GitHub PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/473">#473</a>,
475, 476</li>
</ul>
<h4>version 3.30.1 on December 17, 2023</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/471">#471</a></li>
</ul>
<h4>version 3.30 on December 17, 2023</h4>
<ul>
<li>GitHub PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/434">#434</a>,
448, 463 (Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/462">#462</a>),
466, 467, 468, 469, 470,</li>
</ul>
<h4>version 3.29.2 on September 14, 2022</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/427">#427</a>.</li>
</ul>
<h4>version 3.29.1 on August 11, 2022</h4>
<ul>
<li>
<p>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/423">#423</a>.</p>
</li>
<li>
<p><code>Readme.html</code> was deleted (GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/414">#414</a>).</p>
</li>
</ul>
<h4>version 3.29 on May 13, 2022</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/378">#378</a>,
PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/278">#278</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/299">#299</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/382">#382</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/383">#383</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/390">#390</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/391">#391</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/395">#395</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/399">#399</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/409">#409</a>.</li>
</ul>
<h4>version 3.28 on May 8, 2021</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/305">#305</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/328">#328</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/339">#339</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/350">#350</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/357">#357</a>,
and PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/363">#363</a>.</li>
</ul>
<h4>version 3.27 on March 19, 2020</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/271">#271</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/279">#279</a>),
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/280">#280</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/281">#281</a>),
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/282">#282</a>,
and PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/294">#294</a>.</li>
</ul>
<h4>version 3.26 on October 3, 2019</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/270">#270</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/272">#272</a>),
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/265">#265</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/267">#267</a>),
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/271">#271</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/222">#222</a>,
and <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/275">#275</a>.</li>
</ul>
<h4>version 3.25 on April 16, 2019</h4>
<ul>
<li>GitHub Issue <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/72">#72</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/231">#231</a>),
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/241">#241</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/242">#242</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/243">#243</a>),
PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/244">#244</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/246">#246</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/247">#247</a>),
PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/250">#250</a>,
<a
href="https://redirect.github.com/jboss-javassist/javassist/issues/252">#252</a>
(PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/253">#253</a>),
PR <a
href="https://redirect.github.com/jboss-javassist/javassist/issues/254">#254</a>.</li>
</ul>
<h4>version 3.24.1 on December 9, 2018</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/jboss-javassist/javassist/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `org.jsoup:jsoup` from 1.22.1 to 1.22.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jhy/jsoup/releases">org.jsoup:jsoup's
releases</a>.</em></p>
<blockquote>
<h2>jsoup Java HTML Parser release 1.22.2</h2>
<p><strong>jsoup 1.22.2</strong> is out now, with fixes and refinements
across the library. It makes editing the DOM during traversal more
predictable, refreshes the default HTML tag definitions with newer
elements and better text boundaries, and improves reliability in parsing
and HTTP transport. The release also fixes a number of edge cases in
cleaning, stream parsing, XML doctype handling, and Android
packaging.</p>
<p><strong>jsoup</strong> is a Java library for working with real-world
HTML and XML. It provides a very convenient API for extracting and
manipulating data, using the best of HTML5 DOM methods and CSS
selectors.</p>
<p><a
href="https://github.com/jhy/jsoup/blob/HEAD/download"><strong>Download</strong></a>
jsoup now.</p>
<h2>Improvements</h2>
<ul>
<li>Expanded and clarified <code>NodeTraversor</code> support for
in-place DOM rewrites during <code>NodeVisitor.head()</code>.
Current-node edits such as <code>remove</code>, <code>replace</code>,
and <code>unwrap</code> now recover more predictably, while traversal
stays within the original root subtree. This makes single-pass tree
cleanup and normalization visitors easier to write, for example when
unwrapping presentational elements or replacing text nodes as you walk
the DOM. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2472">#2472</a><!--
raw HTML omitted --></li>
<li>Documentation: clarified that a configured <code>Cleaner</code> may
be reused across concurrent threads, and that shared
<code>Safelist</code> instances should not be mutated while in use. <!--
raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2473">#2473</a><!--
raw HTML omitted --></li>
<li>Updated the default HTML <code>TagSet</code> for current HTML
elements: added <code>dialog</code>, <code>search</code>,
<code>picture</code>, and <code>slot</code>; made <code>ins</code>,
<code>del</code>, <code>button</code>, <code>audio</code>,
<code>video</code>, and <code>canvas</code> inline by default
(<code>Tag#isInline()</code>, aligned to phrasing content in the spec);
and added readable <code>Element.text()</code> boundaries for controls
and embedded objects via the new <code>Tag.TextBoundary</code> option.
This improves pretty-printing and keeps normalized text from running
adjacent words together. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/pull/2493">#2493</a><!-- raw
HTML omitted --></li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Android (R8/ProGuard): added a rule to ignore the optional
<code>re2j</code> dependency when not present. <!-- raw HTML omitted
--><a
href="https://redirect.github.com/jhy/jsoup/issues/2459">#2459</a><!--
raw HTML omitted --></li>
<li>Fixed a <code>NodeTraversor</code> regression in 1.21.2 where
removing or replacing the current node during <code>head()</code> could
revisit the replacement node and loop indefinitely. The traversal docs
now also clarify which inserted nodes are visited in the current pass.
<!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2472">#2472</a><!--
raw HTML omitted --></li>
<li>Parsing during charset sniffing no longer fails if an advisory
<code>available()</code> call throws <code>IOException</code>, as seen
on JDK 8 <code>HttpURLConnection</code>. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2474">#2474</a><!--
raw HTML omitted --></li>
<li><code>Cleaner</code> no longer makes relative URL attributes in the
input document absolute when cleaning or validating a
<code>Document</code>. URL normalization now applies only to the cleaned
output, and <code>Safelist.isSafeAttribute()</code> is side effect free.
<!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2475">#2475</a><!--
raw HTML omitted --></li>
<li><code>Cleaner</code> no longer duplicates enforced attributes when
the input <code>Document</code> preserves attribute case. A case-variant
source attribute is now replaced by the enforced attribute in the
cleaned output. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2476">#2476</a><!--
raw HTML omitted --></li>
<li>If a per-request SOCKS proxy is configured, jsoup now avoids using
the JDK <code>HttpClient</code>, because the JDK would silently ignore
that proxy and attempt to connect directly. Those requests now fall back
to the legacy <code>HttpURLConnection</code> transport instead, which
does support SOCKS. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2468">#2468</a><!--
raw HTML omitted --></li>
<li><code>Connection.Response.streamParser()</code> and
<code>DataUtil.streamParser(Path, ...)</code> could fail on small inputs
without a declared charset, if the initial 5 KB charset sniff fully
consumed the input and closed it before the stream parse began. <!-- raw
HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2483">#2483</a><!--
raw HTML omitted --></li>
<li>In XML mode, doctypes with an internal subset, such as
<code>&lt;!DOCTYPE root [&lt;!ENTITY name
&quot;value&quot;&gt;]&gt;</code>, now round-trip correctly. The subset
is preserved as raw text only; entities are not expanded and external
DTDs are not loaded. <!-- raw HTML omitted --><a
href="https://redirect.github.com/jhy/jsoup/issues/2486">#2486</a><!--
raw HTML omitted --></li>
</ul>
<h2>Build Changes</h2>
<ul>
<li>Migrated the integration test server from Jetty to Netty, which
actively maintains support for our minimum JDK target (8). <!-- raw HTML
omitted --><a
href="https://redirect.github.com/jhy/jsoup/pull/2491">#2491</a><!-- raw
HTML omitted --></li>
</ul>
<hr />
<p>My sincere thanks to everyone who contributed to this release!
If you have any suggestions for the next release, I would love to hear
them; please get in touch via <a
href="https://github.com/jhy/jsoup/discussions">jsoup discussions</a>,
or with me <a href="https://jhedley.com/">directly</a>.</p>
<p>You can also <!-- raw HTML omitted -->follow me<!-- raw HTML omitted
--> (<!-- raw HTML omitted --><!-- raw HTML omitted -->@<a
href="mailto:jhy@tilde.zone">jhy@tilde.zone</a><!-- raw HTML omitted
--><!-- raw HTML omitted -->) on Mastodon / Fediverse to receive
occasional notes about jsoup releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jhy/jsoup/blob/master/CHANGES.md">org.jsoup:jsoup's
changelog</a>.</em></p>
<blockquote>
<h2>1.22.2 (2026-Apr-20)</h2>
<h3>Improvements</h3>
<ul>
<li>Expanded and clarified <code>NodeTraversor</code> support for
in-place DOM rewrites during <code>NodeVisitor.head()</code>.
Current-node edits such as <code>remove</code>, <code>replace</code>,
and <code>unwrap</code> now recover more predictably, while traversal
stays within the original root subtree. This makes single-pass tree
cleanup and normalization visitors easier to write, for example when
unwrapping presentational elements or replacing text nodes as you walk
the DOM. <a
href="https://redirect.github.com/jhy/jsoup/issues/2472">#2472</a></li>
<li>Documentation: clarified that a configured <code>Cleaner</code> may
be reused across concurrent threads, and that shared
<code>Safelist</code> instances should not be mutated while in use. <a
href="https://redirect.github.com/jhy/jsoup/issues/2473">#2473</a></li>
<li>Updated the default HTML <code>TagSet</code> for current HTML
elements: added <code>dialog</code>, <code>search</code>,
<code>picture</code>, and <code>slot</code>; made <code>ins</code>,
<code>del</code>, <code>button</code>, <code>audio</code>,
<code>video</code>, and <code>canvas</code> inline by default
(<code>Tag#isInline()</code>, aligned to phrasing content in the spec);
and added readable <code>Element.text()</code> boundaries for controls
and embedded objects via the new <code>Tag.TextBoundary</code> option.
This improves pretty-printing and keeps normalized text from running
adjacent words together. <a
href="https://redirect.github.com/jhy/jsoup/pull/2493">#2493</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Android (R8/ProGuard): added a rule to ignore the optional
<code>re2j</code> dependency when not present. <a
href="https://redirect.github.com/jhy/jsoup/issues/2459">#2459</a></li>
<li>Fixed a <code>NodeTraversor</code> regression in 1.21.2 where
removing or replacing the current node during <code>head()</code> could
revisit the replacement node and loop indefinitely. The traversal docs
now also clarify which inserted nodes are visited in the current pass.
<a
href="https://redirect.github.com/jhy/jsoup/issues/2472">#2472</a></li>
<li>Parsing during charset sniffing no longer fails if an advisory
<code>available()</code> call throws <code>IOException</code>, as seen
on JDK 8 <code>HttpURLConnection</code>. <a
href="https://redirect.github.com/jhy/jsoup/issues/2474">#2474</a></li>
<li><code>Cleaner</code> no longer makes relative URL attributes in the
input document absolute when cleaning or validating a
<code>Document</code>. URL normalization now applies only to the cleaned
output, and <code>Safelist.isSafeAttribute()</code> is side effect free.
<a
href="https://redirect.github.com/jhy/jsoup/issues/2475">#2475</a></li>
<li><code>Cleaner</code> no longer duplicates enforced attributes when
the input <code>Document</code> preserves attribute case. A case-variant
source attribute is now replaced by the enforced attribute in the
cleaned output. <a
href="https://redirect.github.com/jhy/jsoup/issues/2476">#2476</a></li>
<li>If a per-request SOCKS proxy is configured, jsoup now avoids using
the JDK <code>HttpClient</code>, because the JDK would silently ignore
that proxy and attempt to connect directly. Those requests now fall back
to the legacy <code>HttpURLConnection</code> transport instead, which
does support SOCKS. <a
href="https://redirect.github.com/jhy/jsoup/issues/2468">#2468</a></li>
<li><code>Connection.Response.streamParser()</code> and
<code>DataUtil.streamParser(Path, ...)</code> could fail on small inputs
without a declared charset, if the initial 5 KB charset sniff fully
consumed the input and closed it before the stream parse began. <a
href="https://redirect.github.com/jhy/jsoup/issues/2483">#2483</a></li>
<li>In XML mode, doctypes with an internal subset, such as
<code>&lt;!DOCTYPE root [&lt;!ENTITY name
&quot;value&quot;&gt;]&gt;</code>, now round-trip correctly. The subset
is preserved as raw text only; entities are not expanded and external
DTDs are not loaded. <a
href="https://redirect.github.com/jhy/jsoup/issues/2486">#2486</a></li>
</ul>
<h3>Build Changes</h3>
<ul>
<li>Migrated the integration test server from Jetty to Netty, which
actively maintains support for our minimum JDK target (8). <a
href="https://redirect.github.com/jhy/jsoup/pull/2491">#2491</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c"><code>ac28afe</code></a>
[maven-release-plugin] prepare release jsoup-1.22.2</li>
<li><a
href="https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4"><code>52f2cd3</code></a>
Improve entity example in changelog</li>
<li><a
href="https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6"><code>cf6ffe0</code></a>
Add Tag#TextBoundary option; bring TagSet to spec (<a
href="https://redirect.github.com/jhy/jsoup/issues/2493">#2493</a>)</li>
<li><a
href="https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c"><code>2be739c</code></a>
Bump github/codeql-action from 4 to 4.35.1 (<a
href="https://redirect.github.com/jhy/jsoup/issues/2492">#2492</a>)</li>
<li><a
href="https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf"><code>45de7cb</code></a>
Migrate integration test server from Jetty to Netty (<a
href="https://redirect.github.com/jhy/jsoup/issues/2491">#2491</a>)</li>
<li><a
href="https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320"><code>1df14ed</code></a>
Preserve XML doctype internal subset</li>
<li><a
href="https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43"><code>06fa52d</code></a>
Adding Contribution Guide</li>
<li><a
href="https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6"><code>d4a8941</code></a>
Simplify the test; doesn't need the buffer</li>
<li><a
href="https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8"><code>823709f</code></a>
Don't reuse a fully read sniffed doc for StreamParser</li>
<li><a
href="https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79"><code>e1b0df5</code></a>
NodeFilter javadoc tweak</li>
<li>Additional commits viewable in <a
href="https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ACANX pushed a commit to ACANX/MetaOpen that referenced this pull request Apr 28, 2026
…1423)

Bumps
[commons-codec:commons-codec](https://github.com/apache/commons-codec)
from 1.17.1 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
<h2>Apache Commons Codec 1.21.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.21.0.</p>
<p>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</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.17.1...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.17.1&new-version=1.22.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ACANX pushed a commit to ACANX/MetaOpen that referenced this pull request Apr 28, 2026
…1427)

Bumps
[commons-codec:commons-codec](https://github.com/apache/commons-codec)
from 1.21.0 to 1.22.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt">commons-codec:commons-codec's
changelog</a>.</em></p>
<blockquote>
<h2>Apache Commons Codec 1.22.0 Release Notes</h2>
<p>The Apache Commons Codec team is pleased to announce the release of
Apache Commons Codec 1.22.0.</p>
<p>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.</p>
<p>This is a feature and maintenance release. Java 8 or later is
required.</p>
<h2>New features</h2>
<ul>
<li>CODEC-326: Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff
Bock von Wuelfingen.</li>
<li>
<pre><code> Add
BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to
Gary Gregory.
</code></pre>
</li>
<li>CODEC-335: Add GitIdentifiers to compute Git blob and tree object
identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.</li>
</ul>
<h2>Fixed Bugs</h2>
<ul>
<li>CODEC-249: Fix Incorrect transform of CH digraph according Metaphone
basic rules <a
href="https://redirect.github.com/apache/commons-codec/issues/423">#423</a>.
Thanks to Shalu Jha, Andrey, Gary Gregory.</li>
<li>CODEC-317: ColognePhonetic can create duplicate consecutive codes in
some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.</li>
<li>
<pre><code> Add boundary tests for BinaryCodec.fromAscii partial-bit
inputs [#425](apache/commons-codec#425).
Thanks to fancying, Gary Gregory.
</code></pre>
</li>
<li>CODEC-336: Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly
states null is accepted for primitive boolean parameter. Thanks to
Partha Paul, Gary Gregory.</li>
</ul>
<h2>Changes</h2>
<ul>
<li>
<pre><code> Bump org.apache.commons:commons-parent from 96 to 98. Thanks
to Gary Gregory.
</code></pre>
</li>
</ul>
<p>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:</p>
<p><a
href="https://commons.apache.org/proper/commons-codec/">https://commons.apache.org/proper/commons-codec/</a></p>
<p>Download page: <a
href="https://commons.apache.org/proper/commons-codec/download_codec.cgi">https://commons.apache.org/proper/commons-codec/download_codec.cgi</a></p>
<hr />
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/commons-codec/commit/81a6295f071df5819893422a397d94bc396f2edd"><code>81a6295</code></a>
Prepare for the release candidate 1.22.0 RC1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/73104b011a9758896904831f9b1bd29aad077f11"><code>73104b0</code></a>
Prepare for the next release candidate</li>
<li><a
href="https://github.com/apache/commons-codec/commit/8e36214fa2760d37e4e9c83336ed5bb324c23482"><code>8e36214</code></a>
In-line single use test local variables</li>
<li><a
href="https://github.com/apache/commons-codec/commit/9bd67e787d88705baa26e85f3a9609dec015ba5b"><code>9bd67e7</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/25e52b06a3c24dc06216e7d29321a2f01c60ec6f"><code>25e52b0</code></a>
Use vararg syntax</li>
<li><a
href="https://github.com/apache/commons-codec/commit/e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"><code>e2ebaca</code></a>
Bump github/codeql-action from 4.35.1 to 4.35.2</li>
<li><a
href="https://github.com/apache/commons-codec/commit/33998a05a8adc84ca944bad2e5c7215309d1477b"><code>33998a0</code></a>
Bump actions/upload-artifact from 7.0.0 to 7.0.1</li>
<li><a
href="https://github.com/apache/commons-codec/commit/50c6583280cb3ed67407dcaeb31df4f8fa8ede20"><code>50c6583</code></a>
Bump actions/cache from 5.0.4 to 5.0.5</li>
<li><a
href="https://github.com/apache/commons-codec/commit/b2be3a82b2d0902e89718a56c6afb5850d020668"><code>b2be3a8</code></a>
Add <a
href="https://github.com/Override"><code>@​Override</code></a></li>
<li><a
href="https://github.com/apache/commons-codec/commit/20f09bfcfdce88760ec9be095b848e85d9084acf"><code>20f09bf</code></a>
Use final.</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/commons-codec/compare/rel/commons-codec-1.21.0...rel/commons-codec-1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.21.0&new-version=1.22.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants