RFR: 8279673: AudioClip.play doesn't work due to NullPointerException when creating DataPusher

Andrey Turbanov aturbanov at openjdk.java.net
Fri Jan 21 08:06:49 UTC 2022


On Wed, 15 Dec 2021 01:40:16 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> There is possible NPE, when trying to play AudioClip
>> 
>> import java.applet.AudioClip;
>> import java.io.IOException;
>> import java.net.URL;
>> 
>> 
>> public class AudioNpe {
>>     public static void main(String[] args) throws IOException, InterruptedException {
>>         URL url = new URL("https://file-examples-com.github.io/uploads/2017/11/file_example_WAV_1MG.wav");
>>         AudioClip content = (AudioClip)url.getContent();
>>         content.play();
>> 
>>         Thread.sleep(10000L);
>>     }
>> }
>> 
>> 
>> 	  at java.lang.Thread.<init>(Thread.java:393)
>> 	  at java.lang.Thread.<init>(Thread.java:760)
>> 	  at com.sun.media.sound.JSSecurityManager.createThread(JSSecurityManager.java:115)
>> 	  at com.sun.media.sound.DataPusher.start(DataPusher.java:117)
>> 	  - locked <0x955> (a com.sun.media.sound.DataPusher)
>> 	  at com.sun.media.sound.JavaSoundAudioClip.startImpl(JavaSoundAudioClip.java:202)
>> 	  - locked <0x95e> (a com.sun.media.sound.JavaSoundAudioClip)
>> 	  at com.sun.media.sound.JavaSoundAudioClip.play(JavaSoundAudioClip.java:152)
>> 	  at main.java.AudioNpe.main(AudioNpe.java:12)
>> 
>> 
>> It happens because of bug in `com.sun.media.sound.JSSecurityManager#createThread` implementation: variable `String name`, which supposed to be used - actually unused and `null` thread name is passed to `Thread` constructor.
>> 
>> After fix - audio clip plays without problems.
>
> @turbanoff do you plan to update the PR?

@mrserb @prrace  Can you please check the test. It should contain some metadata, (`@bug`, `description`, etc) right?

-------------

PR: https://git.openjdk.java.net/jdk/pull/6382



More information about the client-libs-dev mailing list