On 16/06/2025 19:48, Philip Race wrote:

>A migration from AudioClip to SoundClip would require all usages to change too. >I think for now that it should be okay to just the mapping from MultimediaContentHandlers so that it returns null.

For clarity, this handler/provider returning null does not mean that null is what is returned to the application. I haven't completely traced it, but it looks like the java.net implementation will fall back to returning the
content as a stream of bytes.

Right, a ContentHandler can return null but the URLConnection::getContent API always returns something when content can be fetch from the URL. URLConnection.UnknownContentHandler is the lender of last resort.



For the audio cases, if I return SoundClip it is possible for application code to migrate, just as I did for the two regression tests. But if I return null, they have a bigger migration issue.

I agree that returning a SoundClip gives a migration path, it's more defensible than not mapping.




PerhapsĀ  even if these APIs still have a use for applications which install their own handlers and
so have knowledge about it.

For applications that expect an ImageProducer, or an AudioClip, they must have worked out what to expect by inspection - and this is going back to JDK 1.0 / 1.1 days

The docs have always (since 1.0) said
'The|instanceOf|operation should be used to determine the specific kind of object returned.'

Perhaps we can consider deprecating [*] (and later removing) the MultimediaContentHandlers ? After all if you have a jlinked image w/o the desktop module, you'll not be able to us them anyway.

In the jlink case, you'd have to include java.desktop if the application, or a library, has a static depending on java.awt.image.* types. So yes, you would get different behavior depending on whether the java.desktop module is in the run-time image but only if the application isn't using instanceof.

No objection if we try to work towards dropping these mappings, just not clear how much testing there is with EA builds to shake out any common usages that we can't think of.

-Alan

Reply via email to