- Notifications
You must be signed in to change notification settings - Fork124
Fix resulting buffer from BufferProxy's out method being ignored.#255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Fix resulting buffer from BufferProxy's out method being ignored.#255
Uh oh!
There was an error while loading.Please reload this page.
Conversation
TODO: address failing dbiWithComparatorThreadSafetyByteArray test.
This proves to be more reliable than Agreno's UnsafeBuffers.
at055612 commentedOct 24, 2025
Regarding the upgrade to Java 25, see#259 I will however try and verify and merge this PR as soon as possible. |
5e03aec toe598e21Comparecodecovbot commentedOct 26, 2025 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@## master #255 +/- ##============================================+ Coverage 88.60% 89.33% +0.72%- Complexity 409 413 +4============================================ Files 32 32 Lines 1483 1481 -2 Branches 124 124 ============================================+ Hits 1314 1323 +9+ Misses 100 88 -12- Partials 69 70 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
43ac84f intolmdbjava:masterUh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
This pull request aims to fix some cases in LMDBJava where the
BufferProxy'soutmethod resulting buffer is ignored, especially inDbi.I've discovered this issue while attempting to write a new implementation of
BufferProxyto use Java 22's Function Foreign Memory API in preparation of Java 25's depreciation of various methods inUnsafeinvalidating most fastBufferProxyimplementations. The implementation failed to pass some tests since in theoutmethod I returned a newByteBuffer(taking advantage ofMemorySegment.ofAddress().asByteBuffer()).After further investigation, I've found that
ByteArrayProxyalso relies on returning a different "buffer" from the one that's given as an argument, for which I've added new tests that reproduce the behavior ofDbiTest.customComparatorandDbiTest.dbiWithComparatorThreadSafetyusing byte arrays instead.ByteArrayProxyled me to think that returning a different buffer inoutis an allowed and intended behavior.This fix is important for users of
ByteArrayProxyand allows for a stop-gap external implementation ofBufferProxyusing the FFM API to allow users to upgrade to Java 25 when the time comes until a proper resolution to#42 comes around.