RFR: 8282463: javax/sound/sampled/Clip/DataPusherThreadCheck.java fails

Phil Race prr at openjdk.org
Wed Oct 26 19:43:54 UTC 2022


On Sat, 15 Oct 2022 13:03:26 GMT, Andrey Turbanov <aturbanov at openjdk.org> wrote:

> Test failed on Ubuntu, because both implementations of `MixerProvider` have no devices:
> 1. com.sun.media.sound.DirectAudioDeviceProvider#nGetNumDevices returns `0`
>  ![DirectAudioDeviceProvider init](https://user-images.githubusercontent.com/741251/195988216-aa86da0f-739b-433f-87e2-86c2d6904a0d.png)
> 2. com.sun.media.sound.PortMixerProvider#nGetNumDevices returns `0`
>  ![PortMixerProvider init](https://user-images.githubusercontent.com/741251/195988239-59678e0c-be7b-43ff-b02a-9abb2392e8f9.png)
> 
> 
> It leads to `javax.sound.sampled.spi.MixerProvider#getMixerInfo` returns empty array.
> ![AudioSystem getMixedInfoList](https://user-images.githubusercontent.com/741251/195988266-1656e6d3-de4a-4e53-a613-415f60075726.png)
> 
> And DataPusher thread is not created, because of AudioSystem.isLineSupported returns false in the method `com.sun.media.sound.JavaSoundAudioClip#createSourceDataLine`.
> I propose to perform the same check in test code and skip it.

So I have no real objection to this check because it will solve something - more on that at the end.
1) On my Ubuntu 22.04 system it passes this new condition you added - ie the device is present.
2) This test has been failing only very intermittently, which points to the failure mode in the test being that the DataPusher thread is created but is terminated before it can be observed.

Where I've seen the device not present is when running on some VM configs where there is no audio support - there the test will fail every time.
For that I think your check should cure the 100% failure, but will do nothing about the 1% (or less) failure.

That said .. the test doesn't call clip.stop() until after the verification, so perhaps there's something else going on.

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

PR: https://git.openjdk.org/jdk/pull/10717



More information about the client-libs-dev mailing list