-
Bug
-
Resolution: Fixed
-
P2
-
6u141, 7u131, 8u112, 9
-
b155
-
generic
-
windows
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8174656 | 10 | Anton Litvinov | P2 | Resolved | Fixed | b01 |
JDK-8183816 | 8u161 | Anton Litvinov | P2 | Resolved | Fixed | b01 |
JDK-8172980 | 8u152 | Anton Litvinov | P2 | Closed | Fixed | b01 |
JDK-8192551 | emb-8u161 | Anton Litvinov | P2 | Resolved | Fixed | b01 |
JDK-8174091 | 7u171 | Anton Litvinov | P2 | Closed | Fixed | b01 |
JDK-8174093 | 6u181 | Anton Litvinov | P2 | Closed | Fixed | b01 |
64-bit JDK 8u112 b15, 64-bit JDK 9 b145
ADDITIONAL OS VERSION INFORMATION :
64-bit MS Windows 7 OS
A DESCRIPTION OF THE PROBLEM :
After many repetitive sequential calls to the methods "loop()", "stop()" on the same instance of "java.applet.AudioClip" at some moment two threads with the name "Direct Clip", which are responsible for background playing of the mentioned "AudioClip" instance, are created and start existing in parallel, what makes the being played clip sound as corrupted.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
The bug is intermittent and can be reproduced with both 64-bit and 32-bit JDK using 2 test cases:
- The attached "TestCase2.zip" – it may take 12 minutes to reproduce.
- The attached "AC.java" (requires additional changes), "Windows Logon Sound.wav" – it may take hours to reproduce.
Using the test case "TestCase2.zip":
1. Decompress the attached test case "TestCase2.zip".
2. Start command line "cmd.exe" and change a current directory to the extracted "TestCase2" directory.
3. Compile and run the extracted test case "TestCase2.java". It may take 12 minutes to reproduce the bug. The bug is reproduced, if call stacks of 2 existing threads with "Direct Clip" name become printed out in the command line, for example:
-------------------- Example test case output in the command line --------------------
[Thread[Direct Clip,6,main]], thread.getId()='46'
at java.base@9-internal/java.lang.Object.wait(Native Method)
at java.desktop@9-internal/com.sun.media.sound.DirectAudioDevice$DirectDL.write(DirectAudioDevice.java:763)
at java.desktop@9-internal/com.sun.media.sound.DirectAudioDevice$DirectClip.run(DirectAudioDevice.java:1374)
at java.base@9-internal/java.lang.Thread.run(Thread.java:844)
[Thread[Direct Clip,6,main]], thread.getId()='45'
at java.base@9-internal/java.lang.Object.wait(Native Method)
at java.desktop@9-internal/com.sun.media.sound.DirectAudioDevice$DirectDL.write(DirectAudioDevice.java:763)
at java.desktop@9-internal/com.sun.media.sound.DirectAudioDevice$DirectClip.run(DirectAudioDevice.java:1374)
at java.base@9-internal/java.lang.Thread.run(Thread.java:844)
----------------------------------------
- backported by
-
JDK-8174656 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Resolved
-
-
JDK-8183816 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Resolved
-
-
JDK-8192551 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Resolved
-
-
JDK-8172980 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Closed
-
-
JDK-8174091 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Closed
-
-
JDK-8174093 Two "Direct Clip" threads are created to play the same "AudioClip" object, what makes clip sound corrupted
-
- Closed
-
- relates to
-
JDK-8178403 DirectAudio in JavaSound may hang and leak
-
- Resolved
-