Skip to content

Commit 62b985b

Browse files
jderegclaude
andcommitted
Update changelog for 4.96.0 with trySetAccessible fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5a59ff6 commit 62b985b

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### Revision History
22

33
#### 4.96.0 (Unreleased)
4+
* **BUG FIX**: `ClassUtilities.trySetAccessible()` no longer caches successful `setAccessible(true)` results. The `WeakHashMap`-based cache uses `equals()` for lookup, but `Field.equals()` matches by declaring class, name, and type — not identity. When `getDeclaredFields()` was called with different predicates, the JVM returned different `Field` instances for the same logical field; the cache returned `TRUE` for the second instance without ever calling `setAccessible(true)` on it, leaving it inaccessible. This caused `Traverser` to silently skip inaccessible fields, breaking `GraphComparator.applyDelta()`. Only failures (`FALSE`) are now cached to avoid expensive repeated exceptions on JPMS-sealed modules.
45

56
#### 4.95.0 - 2026-02-28
67
* **BUG FIX**: `ArrayUtilities.setPrimitiveElement(char[], ...)` now throws `IllegalArgumentException` for incompatible non-char inputs instead of silently coercing values to `'\0'`.

0 commit comments

Comments
 (0)