Vladimir Sitnikov
Vladimir Sitnikov
For now, I implemented custom `equals` and `hashCode` for `HashTree` and `ListedHashTree` so they use reference equality for keys and object equality for values which turns out to be consistent...
I'm inclined to merge this and check how it works. I think I've polished most of the glitches.
>synchronized identitymap a major performance impact and should we try to get it back to something concurrent? I've no idea. We already had synchronized maps, so it should not be...
matrix_build.js is taken from https://github.com/vlsi/github-actions-random-matrix, so the copyright is retained. I believe it is worth copying the script, so it does not require cloning extra repository when CI builds the...
@undera do you have any opinion on org.apache.jmeter.testelement.AbstractTestElement#equals ? Currently `AbstractTestElement#hashCode` uses `identityHashCode`, so it was supposed to use reference equality when being a part of hashMap. However, `AbstractTestElement#equals` used...
Here's a problem: ```java @Test public void testDemoProblem() throws Exception { AbstractTestElement o1 = new ConstantTimer(); AbstractTestElement o2 = new ConstantTimer(); Set timers = new HashSet(); timers.add(o1); timers.add(o2); Assert.assertEquals(2, timers.size(),...
>because the hashCode() is different. Why are you so sure `hashCode` is always different? There are at most 2**32 different `hashCode` values, so sometimes `hashCode` will collide. If you launch...
> Also, if I open bin/testfiles/BUG_62847.jmx and re-save it with master branch code Did you perform `export _JAVA_OPTIONS="-XX:+UnlockExperimentalVMOptions -XX:hashCode=2"` before running "master branch code"?
> The statement about 1/(2**32) event as sufficiently frequent does not sound to me According to the [birthday problem](https://en.wikipedia.org/wiki/Birthday_problem#Square_approximation), the collision would happen with probability of 50% at `2**16` elements,...
Sample failure in the current master: ```java public class SearchByClassTest { @Test public void test() { ListedHashTree tree = new ListedHashTree(); int count = 100000; for (int i = 0;...