<Sound Dev> com.sun.media.sound.SoftMainMixer.processAudioBuffers stoppedMixers-handling-bug?

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Jan 30 03:40:52 UTC 2020


Hi, Lothar.

Thank you for this bug report, can you please file it:
https://bugs.java.com/bugdatabase


On 1/29/20 10:10 am, Lothar Kimmeringer wrote:
> Hi,
> 
> for completely sound-unrelated reasons I've downloaded the sources of JDK 1.8
> and created an Eclipse-project with it. I get a compile error in class
> com.sun.media.sound.SoftMainMixer.processAudioBuffers and when checking the
> source I have to agree with Eclipse that it's an issue:
> 
> Description    Resource    Path    Location    Type
> Unlikely argument type SoftMainMixer.SoftChannelMixerContainer for contains(Object) on a Collection<ModelChannelMixer>    SoftMainMixer.java    /JDK1_8/src/share/classes/com/sun/media/sound    line 632    Java Problem
> 
> Disclaimer: I've configured Eclipse to regard this programming mistake as error,
> while the default is just a warning.
> 
> The offending lines (threre are two) is:
> 
>      if (stoppedMixers.contains(cmixer)) {
>          stoppedMixers.remove(cmixer);
>          cmixer.mixer.stop();
>      }
> 
> stoppedMixer is a a Collection<ModelChannelMixer> while cmixer is of
> type SoftChannelMixerContainer, so contains() will never return true.
> I assume it should have been
> 
>      if (stoppedMixers.contains(cmixer.mixer)) {
>          stoppedMixers.remove(cmixer.mixer);
>          cmixer.mixer.stop();
>      }
> 
> instead. I've checked the sources of Java 13 and it's still there in
> this way so it doesn't seem to be something that has already been found
> and fixed but not been backported to Java 1.8.
> 
> WMState and KeepAliveCache have similar issues but I suppose that's
> for other mail lists to report ;-)
> 
> 
> Thanks and best regards,
> 
> Lothar Kimmeringer


-- 
Best regards, Sergey.


More information about the sound-dev mailing list