RFR: 8269091: javax/sound/sampled/Clip/SetPositionHang.java failed with ArrayIndexOutOfBoundsException: Array index out of range: -4
Phil Race
prr at openjdk.java.net
Fri Feb 11 00:04:26 UTC 2022
This test has started failing since we got M1 macs to test on. I don't think we've ever seen this failure elsewhere.
I don't know what it is about that architecture that makes it more likely but I can see how it can happen when multiple threads are using the same instance.
if (newFramePosition >= 0) {
clipBytePosition = newFramePosition * frameSize;
newFramePosition = -1;
}
newFramePosition is declared volatile which does make it quite possible that after the read and before the use it will have changed.
The fix just synchronizes this block to prevent it.
-------------
Commit messages:
- 8269091: javax/sound/sampled/Clip/SetPositionHang.java failed with ArrayIndexOutOfBoundsException: Array index out of range: -4
Changes: https://git.openjdk.java.net/jdk/pull/7436/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7436&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8269091
Stats: 6 lines in 2 files changed: 2 ins; 0 del; 4 mod
Patch: https://git.openjdk.java.net/jdk/pull/7436.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/7436/head:pull/7436
PR: https://git.openjdk.java.net/jdk/pull/7436
More information about the client-libs-dev
mailing list