You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1. Description :
When dynamically resizing a Processing sketch window (via surface.setSize(w, h) or by enabling surface.setResizable(true)), a NullPointerException may occur in Component$BltBufferStrategy.revalidate(...), due to an internal backBuffers[] array being null.
This happens during the rendering phase, likely due to an invalidated or uninitialized BufferStrategy after the resize.
2. Example Stack Trace :
java.lang.NullPointerException: Cannot invoke "java.awt.image.VolatileImage.validate(java.awt.GraphicsConfiguration)" because "this.backBuffers[...]" is null
at java.desktop/java.awt.Component$BltBufferStrategy.revalidate(Component.java:4552)
at java.desktop/java.awt.Component$BltBufferStrategy.getDrawGraphics(Component.java:4449)
at processing.awt.PSurfaceAWT.render(PSurfaceAWT.java:242)
at processing.awt.PSurfaceAWT$9.callDraw(PSurfaceAWT.java:1389)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:356)
3. Expected Behavior :
When resizing the window, either manually (with setResizable(true)) or programmatically (via surface.setSize(w, h)), the sketch should continue rendering smoothly without crashing or throwing an exception.
Hi @famousgrouse44 and thanks for reporting and investigating this issue. Resizeable windows are a relatively new feature in Processing and they could definitely use a little more love.
I noticed something similar but with a different error message here.
Most appropriate sub-area of Processing 4?
Core/Environment/Rendering
Processing version
4.4.4
Operating system
Windows 10
Steps to reproduce this
1. Description :
When dynamically resizing a Processing sketch window (via
surface.setSize(w, h)
or by enablingsurface.setResizable(true)
), a NullPointerException may occur in Component$BltBufferStrategy.revalidate(...), due to an internal backBuffers[] array being null.This happens during the rendering phase, likely due to an invalidated or uninitialized BufferStrategy after the resize.
2. Example Stack Trace :
3. Expected Behavior :
When resizing the window, either manually (with
setResizable(true)
) or programmatically (viasurface.setSize(w, h)
), the sketch should continue rendering smoothly without crashing or throwing an exception.snippet
Additional context
Discovered Workaround :
Calling
surface.setVisible(true)
immediately after resizing prevents the crash :Would you like to work on the issue?
No
The text was updated successfully, but these errors were encountered: