Bug 65790 - Consider integrating SparseBitSet into POI codebase
Summary: Consider integrating SparseBitSet into POI codebase
Status: RESOLVED WONTFIX
Alias: None
Product: POI
Classification: Unclassified
Component: POI Overall (show other bugs)
Version: 5.0.0-FINAL
Hardware: PC All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: POI Developers List
URL:
Keywords:
: 65787 65789 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-01-07 07:28 UTC by Jan Tošovský
Modified: 2023-01-03 17:59 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Tošovský 2022-01-07 07:28:46 UTC
Quite controversial topic. SparseBitSet library consists of single class (https://github.com/brettwooldridge/SparseBitSet/tree/master/src/main/java/com/zaxxer/sparsebits), which can be considered stable and tested over the years. It is distributed under Apache 2.0 license so I assume it would be legal to clone it (keeping the original author credits) under some POI namespace and make it integral part of POI.
Comment 1 PJ Fanning 2022-01-07 07:51:24 UTC
This will probably not happen due to the licensing implications and the fact that we would have to sped time checking if bugs had been reported or fixed in upstream project (which is easier done with dependabot).
Comment 2 PJ Fanning 2022-01-07 07:57:33 UTC
*** Bug 65789 has been marked as a duplicate of this bug. ***
Comment 3 PJ Fanning 2022-01-07 07:58:52 UTC
*** Bug 65787 has been marked as a duplicate of this bug. ***
Comment 4 PJ Fanning 2022-01-07 08:04:05 UTC
https://github.com/brettwooldridge/SparseBitSet/issues/21 is the real issue - and the original issue https://bz.apache.org/bugzilla/show_bug.cgi?id=65787 has comments about how the reporter can workaround this non-POI issue.
Comment 5 Axel Howind 2022-01-11 10:38:23 UTC
I just looked where SparseBitSet is used in the POI code base, and to me it looks like there might be better alternatives. One example is a map with strings as keys. These are converted to ints, stored in a SparseBitSet, and then that bitset is used to determine the next free index into the map. It seems like the wrong tool for the task.

I will look into this and the other instances where it is used and probably prepare a PR. If it turns out we still need the SparseBitSet, I will create a PR for the upstream project, otherwise I think the dependency should simply be removed.
Comment 6 PJ Fanning 2022-01-18 12:51:33 UTC
curvesapi jar does not seem to have module setup either - just to highlight that there are a fair number of POI dependencies affected
Comment 7 Ricardo gomez 2022-11-04 02:27:49 UTC
Gracias
Comment 8 PJ Fanning 2023-01-03 17:59:40 UTC
This is one among many POI jar dependencies that don't have Java module details set up (commons-io, commons-math are others)