This is a breaking change release version of the Java DataLoader
The main breaking change is in org.dataloader.CacheMap and specifically the org.dataloader.CacheMap#putIfAbsentAtomically method.
Previous versions of dataloader used synchronised locks to guard the data structures during a dispatch call.
However to provide even higher performance the code has been changed to use a Compare And Swap (CAS) mechanism instead.
This means that there is a new contract on the org.dataloader.CacheMap implementations that they must be atomically thread safe in their writing and reading of cache entries.
The default implementation uses a java.util.concurrent.ConcurrentHashMap to provide this but if you have your own implementations then you need to update them to be atomically thread safe when putting cache entries.
If you don't use your own org.dataloader.CacheMap implementation then this will not be a breaking change version for you since there are no other breaking changes.
What's Changed
- Bump com.gradle.develocity from 4.1.1 to 4.2 by @dependabot[bot] in #233
- Bump org.jetbrains.kotlin.jvm from 2.2.10 to 2.2.20 by @dependabot[bot] in #230
- Bump com.uber.nullaway:nullaway from 0.12.9 to 0.12.10 by @dependabot[bot] in #231
- Bump com.github.ben-manes.versions from 0.52.0 to 0.53.0 by @dependabot[bot] in #234
- Bump gradle/actions from 4 to 5 by @dependabot[bot] in #236
- Bump com.gradle.develocity from 4.2 to 4.2.1 by @dependabot[bot] in #235
- Bump com.gradle.develocity from 4.2.1 to 4.2.2 by @dependabot[bot] in #237
- Updating the code to use reentrant locks by @bbakerman in #239
- remove any Reentrant locks in favor of a CAS linked list by @andimarek in #241
- fix master build by @andimarek in #242
- Added a loadImpl function to allow delegate overriding better by @bbakerman in #240
- Bump org.jetbrains.kotlin.jvm from 2.2.20 to 2.2.21 by @dependabot[bot] in #247
- Bump io.github.reyerizo.gradle.jcstress from 0.8.15 to 0.9.0 by @dependabot[bot] in #246
- Bump com.google.errorprone:error_prone_core from 2.42.0 to 2.43.0 by @dependabot[bot] in #245
- Updated the documentation of the CacheMap and also some refactoring by @bbakerman in #244
Full Changelog: v5.0.3...v6.0.0