Github user michaelandrepearce commented on the issue:
https://github.com/apache/activemq-artemis/pull/1263
So we have:
1. primitive collections
1. id's as objects (Long in this case)
1. flywheel/interning caching pattern
For 1:
we have tried, looks good as long as we just do hot paths, can very
quickly over complicate our code, or start bringing negative effects.
For 2:
I haven't had a chance to see how much work, but this maybe simpler/cleaner
imho. Though does lend its self to people in future accidentally introducing
the boxing issue again.
For 3:
Should work nicely, but only upto a predefined cache size. e.g. what occurs
if cache size is N and i end up with N+1000 longs, we end up in same position
as with Long.valueOf.
Also some complexities introduced, how big should the cache be? how does
someone tune it, i run a very large vm, but fred runs a small one, this works
for an app that you deploy just in your own DC, but I'm weary of setting a
magic cache size where it gets deployed in many differing env's.
For this reason, id personally favour looking into option 2, then keeping a
low scoped option 1.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---