dependabot[bot] opened a new pull request, #21229:
URL: https://github.com/apache/camel/pull/21229

   Bumps [com.cedarsoftware:java-util](https://github.com/jdereg/java-util) 
from 4.88.0 to 4.90.0.
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/jdereg/java-util/blob/master/changelog.md";>com.cedarsoftware:java-util's
 changelog</a>.</em></p>
   <blockquote>
   <h4>4.90.0 2026-02-02</h4>
   <ul>
   <li><strong>BUG FIX</strong>: <code>DeepEquals</code> - URL comparison now 
uses string representation instead of <code>URL.equals()</code>
   <ul>
   <li>Java's <code>URL.equals()</code> performs DNS resolution which causes 
flaky CI failures</li>
   <li>Now compares URLs using <code>toExternalForm()</code> for reliable, 
deterministic comparison</li>
   </ul>
   </li>
   <li><strong>MAINTENANCE</strong>: Migrated test files from deprecated 
<code>JsonIo.toObjects()</code> to <code>JsonIo.toJava().asClass()</code> API
   <ul>
   <li>Updated 8 calls in <code>CompactMapTest</code> and 
<code>ConverterEverythingTest</code></li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: Added <code>FastReader.readUntil()</code> 
for bulk character reading until delimiter
   <ul>
   <li>Reads characters into destination buffer until one of two delimiters is 
found</li>
   <li>Delimiter character is left unconsumed for subsequent read</li>
   <li>Enables bulk string parsing optimization in json-io's JsonParser</li>
   </ul>
   </li>
   </ul>
   <h4>4.89.0 - 2026-01-31</h4>
   <ul>
   <li><strong>PERFORMANCE</strong>: <code>FastReader.getLastSnippet()</code> 
now returns bounded 200-char context
   <ul>
   <li>Previously could return 0 to 8192 characters depending on buffer 
position</li>
   <li>Now consistently returns up to the last 200 characters read for useful 
error context</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: 
<code>ParameterizedTypeImpl.getActualTypeArguments()</code> removed defensive 
clone
   <ul>
   <li>Returns direct reference for performance - callers should not modify the 
array</li>
   <li>Eliminates allocation overhead in hot paths during type resolution</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: 
<code>Converter.isConversionSupportedFor(source, target)</code> now caches 
negative results
   <ul>
   <li>Previously only cached positive hits, causing repeated inheritance 
traversal for unsupported pairs</li>
   <li>Now caches <code>UNSUPPORTED</code> sentinel for O(1) lookup on 
subsequent calls</li>
   <li><code>addConversion()</code> already clears caches via 
<code>clearCachesForType()</code>, so invalidation is handled</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: <code>ReflectionUtils.getMethod()</code> 
and <code>getNonOverloadedMethod()</code> now cache negative results
   <ul>
   <li>Previously threw exceptions inside <code>computeIfAbsent</code>, 
bypassing the cache for &quot;not found&quot; cases</li>
   <li>Now caches sentinel <code>Method</code> objects for failed lookups, 
achieving O(1) on subsequent calls</li>
   <li>Avoids repeated expensive class hierarchy traversals for non-existent 
methods</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: <code>ConcurrentSet.spliterator()</code> 
now returns an optimized spliterator for parallel streams
   <ul>
   <li>Delegates to underlying <code>ConcurrentHashMap</code> spliterator for 
efficient parallel decomposition</li>
   <li>Properly reports <code>CONCURRENT</code> and <code>DISTINCT</code> 
characteristics</li>
   <li>Correctly handles null sentinel unwrapping for null element support</li>
   <li>Enables efficient <code>parallelStream()</code> operations on 
<code>ConcurrentSet</code></li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TrackingMap.putIfAbsent()</code> now 
correctly handles null values
   <ul>
   <li>Previously used <code>get() == null</code> which conflates &quot;key 
absent&quot; with &quot;key present with null value&quot;</li>
   <li>Now uses <code>containsKey()</code> to properly distinguish between the 
two cases</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TrackingMap.computeIfPresent()</code> 
now only tracks keys that were actually present
   <ul>
   <li>Previously tracked the key unconditionally, even when the key didn't 
exist</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: <code>TrackingMap</code> now caches 
interface cast results at construction time
   <ul>
   <li>Avoids repeated <code>instanceof</code> checks and casts for 
<code>asConcurrent()</code>, <code>asNavigable()</code>, 
<code>asSorted()</code> methods</li>
   </ul>
   </li>
   <li><strong>PERFORMANCE</strong>: <code>TrackingMap</code> - Pre-sized 
<code>HashSet</code> in constructor for <code>readKeys</code>
   <ul>
   <li>Uses initial capacity of 16 to reduce early rehashing</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TrackingMap</code> sub-maps now share 
the parent's <code>readKeys</code> set
   <ul>
   <li><code>subMap()</code>, <code>headMap()</code>, <code>tailMap()</code>, 
<code>descendingMap()</code> now correctly track reads across all views</li>
   <li>Previously each sub-map had an isolated <code>readKeys</code> set that 
didn't reflect in parent</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TTLCache.containsValue()</code> now 
filters expired entries
   <ul>
   <li>Previously returned <code>true</code> for expired entries still in the 
cache</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TTLCache.keySet()</code> now filters 
expired entries
   <ul>
   <li>Iterator skips expired entries and correctly removes underlying cache 
entries</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TTLCache.values()</code> now filters 
expired entries
   <ul>
   <li>Iterator skips expired entries and correctly removes underlying cache 
entries</li>
   </ul>
   </li>
   <li><strong>BUG FIX</strong>: <code>TTLCache.entrySet()</code> now filters 
expired entries</li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/jdereg/java-util/commit/49d75c3a2b4b4f6aa6d6899f007f2f0c53737b63";><code>49d75c3</code></a>
 Release 4.90.0</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/dae1345ac83379ab4037de9682abec32bbeea889";><code>dae1345</code></a>
 Revert &quot;Performance: Use local variables in FastReader.readUntil() hot 
loops&quot;</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/55219ccf53647d9dc4ba7b30a001f5463d66f2e7";><code>55219cc</code></a>
 Performance: Use local variables in FastReader.readUntil() hot loops</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/385b5ef74d236f6dc4f38a1b07683e90cbdd67f8";><code>385b5ef</code></a>
 Performance: Add FastReader.readUntil() for bulk character reading</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/9172dfff6029f7c0b043a9d1ec7dece308a96056";><code>9172dff</code></a>
 Migrate test files from deprecated toObjects() to toJava().asClass() API</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/2b4ac56baef105fa8270135fbda27df53bcf25f8";><code>2b4ac56</code></a>
 -updated flaky test</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/8f62809138e759e40f649a9d18b5a955323ae55b";><code>8f62809</code></a>
 Fix URL comparison in DeepEquals to avoid DNS resolution</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/be9d393951f9bc27de5053b620c7eeb79c1a5724";><code>be9d393</code></a>
 Revert &quot;Release 4.90.0&quot;</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/063c76775bbab1d69651b505ef5fabc80462b6b5";><code>063c767</code></a>
 Release 4.90.0</li>
   <li><a 
href="https://github.com/jdereg/java-util/commit/b5f094f3bfd528d9bf01a4684a6c14080965e512";><code>b5f094f</code></a>
 updated readme.md</li>
   <li>Additional commits viewable in <a 
href="https://github.com/jdereg/java-util/compare/4.88.0...4.90.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.cedarsoftware:java-util&package-manager=maven&previous-version=4.88.0&new-version=4.90.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 merge` will merge this PR after your CI passes on it
   - `@dependabot squash and merge` will squash and merge this PR after your CI 
passes on it
   - `@dependabot cancel merge` will cancel a previously requested merge and 
block automerging
   - `@dependabot reopen` will reopen this PR if it is closed
   - `@dependabot close` will close this PR and stop Dependabot recreating it. 
You can achieve the same result by closing it manually
   - `@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>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to