On Wed, 1 Feb 2023 16:54:30 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:

>> modules/javafx.media/src/main/java/com/sun/media/jfxmedia/Media.java line 
>> 103:
>> 
>>> 101:             }
>>> 102:         }
>>> 103:         return returnValue;
>> 
>> This method can be reduced to
>> 
>>     public List<Track> getTracks() {
>>         synchronized (tracks) {
>>             return tracks.isEmpty() ? null : List.copyOf(tracks);
>>         }
>>     }
>> 
>> though I find it highly questionable that it returns `null` for an empty 
>> list instead of just an empty list. There are 2 use cases of this method and 
>> both would do better with just an empty list.
>
> Yeah, I noticed this as well right away, it is documented to do this though.  
> The documentation however does seem to suggest it might be possible that 
> there are three results:
> 
> 1. Tracks haven't been scanned yet -> `null`
> 2. Tracks have been scanned, but none where found -> empty list
> 3. Tracks have been scanned and some were found -> list
> 
> Whether case 2 can ever happen is unclear, but distinguishing it from the 
> case where nothing has been scanned yet with `null` does not seem 
> unreasonable.

It's an internal class and no calling class makes this distinction. I don't 
think it's meant to function in the way you described.

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

PR: https://git.openjdk.org/jfx/pull/1012

Reply via email to