On Tue, 15 Nov 2022 06:28:02 GMT, Tejesh R <[email protected]> wrote: > Yeah, the only way the retVal can become null would-be if > `resolutionVariants` doesn't have an Icon. I could not reproduce the bug > since it is intermittent, I came to this conclusion only by code analysis > though. Should I check for `resolutionVariants` if its empty and return null > without proceeding further......? I guess both the ways `null` will be > returned?
An MRI that has no images does not make any sense, we should've returned null. There are two usages of the constructor which accepts resolution variants: https://github.com/openjdk/jdk/blob/6c8d0e617ff59eee1313589b10edbf5830774db5/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java#L1185 https://github.com/openjdk/jdk/blob/6c8d0e617ff59eee1313589b10edbf5830774db5/src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java#L1112-L1113 There are four usages of the other constructor which accepts an image. Since it's an intermittent problem, we need to add debugging code to the code which creates the `MultiResolutionIconImage` object or handle the exceptional cases in the constructor… by adding an `assert` statement. The tests are run with asserts enabled and we may get more data. Is there a host where the test is more likely to fail? Does it fail on different hosts? Adding the null check to `getResolutionVariant` does not fix the root cause. Instead, it'll make it impossible to find the root cause because everything would look as if no problem exists. ------------- PR: https://git.openjdk.org/jdk/pull/11104
