On Thu, 30 Oct 2025 14:08:38 GMT, Lukasz Kostyra <[email protected]> wrote:
>> This PR fixes NPE thrown when trying to update D3D texture in some rare >> scenarios. >> >> On more stressful cases (like the one using Canvas attached to this issue) >> it is possible that a D3DTexture.update() call will go through after the >> Resource Pool already pruned the underlying Texture's resource. This in turn >> caused an NPE, which propagated to higher levels and disrupted the rendering >> loop, causing the Canvas to not be drawn anymore. The update() call seems >> not to be called more than once on an already freed resource, suggesting >> this is some sort of rare race between the pool and the drawing code. >> >> This change prevents the NPE from being thrown. I noticed no visual problems >> with the test even when the update() call is rejected by the newly added >> check. Best way to verify it is to add a log call inside added `if >> (!resource.isValid())` blocks when running the test, it will occasionally >> get printed but the test itself won't change its behavior like it does >> without this change. > > Lukasz Kostyra has updated the pull request incrementally with one additional > commit since the last revision: > > BaseContext: Add maskTex checks to flushMask() Marked as reviewed by angorya (Reviewer). ------------- PR Review: https://git.openjdk.org/jfx/pull/1951#pullrequestreview-3399959306
