<AWT Dev> RFR: 8212226 SurfaceManager throws "Invalid Image variant" for MultiResolutionImage (Windows)
alexander.zuev at oracle.com
Mon Jul 20 23:45:44 UTC 2020
the new fix can be found here:
I did exactly that - i am trying to substitute the image variant with
the base image and only if it
fails i'm returning false. So far i saw no regression with this approach.
On 6/30/2020 5:05 PM, Sergey Bylokhov wrote:
> On 6/29/20 7:37 am, Alexander Zuev wrote:
>>>> It also means that if a non-primary variant will never be loaded,
>>>> we still should be able to draw the default variant.
>> Well - in certain cases the primary variant is not being loaded too
>> which causes the same exception -
>> what should we do then? There's literally nothing to show in this case.
> Right, in this case, we will return "false" since the image and its
> scaled version are nor ready/loaded yet,
> but we need to check that the observer passed to the method will be
> called when the image will be loaded.
> On the other hand
>> later in the same method when we are scaling the image for custom
>> scaling factor we are checking
>> if the imagepipe is ready and if not - we do return false knowing
>> that this method will be called again later
>> and we will be able to paint image correctly.
>> And i think it is the correct way of handling such situation. I can
>> in case of image not being ready try to get the
>> base image from MRI - and only when IT is not ready to return fail.
>> But returning fail indicating we haven't
>> drawn an updated image is a way to go.
> The boolean flag in this message does not necessarily mean error
> during image loading,
> we may try to draw the image, but it could not fully be completed and
> the observer will be called
> The reasons could be:
> - The image loading is in progress, and we draw only the part of the
> - Only low-quality image is drawn, so we need to redraw good quality
> image later
> But from the other side, we may load the low-quality image on the
> HiDPI environment
> while it is not strictly necessary. I have no personal preferences for
> this, so the
> current fix looks fine, but please check that the observer really will
> be called later
> if the MRI resolution variant is not ready yet.
More information about the awt-dev