The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success
Changes
Summary
TestSharedContextVBOES2NEWT5: Try harder having the objects destroyed and taken from the GLContextShareSet map (details)
JAWTWindow.invalidateNative() and .detachSurfaceLayerImpl(): Pass copy of offscreenSurfaceLayer for pending off-thread operation and immediately zero reference marking its future destruction. (details)
JAWTWindow.ctor: Initialize offscreenSurfaceLayer before use (details)
MacOSXCGLContext.AttachGLLayerCmd: Allow DetachGLLayerCmd to revoke the attach command, essential if attach hasn't been done yet @ detach (details)
OSXMisc.m: Show semantics: caLayer -> rootCALayer (details)
MacOS: JAWTWindow.layoutSurfaceLayerImpl(): Perform OSXUtil.FixCALayerLayout() on main thread and hence fetch and validate getAttachedSurfaceLayer() when needed (details)
MacOS: JAWTWindow's OffscreeLayer: Show semantics in argument names and complete null checks in detachSurfaceLayerImpl(), setSurfaceScale() (details)
MacOS: JAWTWindow.invalidateNative(): Use copied references in off-thread operations and zero source references upfront. (details)
JAWTWindow.invalidateNative() and .detachSurfaceLayerImpl(): Pass copy of offscreenSurfaceLayer for pending off-thread operation and immediately zero reference marking its future destruction.
MacOS: JAWTWindow.layoutSurfaceLayerImpl(): Perform OSXUtil.FixCALayerLayout() on main thread and hence fetch and validate getAttachedSurfaceLayer() when needed
Workaround MacOS + SWT 4.26: java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSGraphicsContext.saveGraphicsState()" because "context" is null
On MacOS 12+ and SWT 4.26 while not using AWT (-Djava.awt.headless=true, -XstartOnFirstThread), we recently get the following Exception from SWT (suppressed):
java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.internal.cocoa.NSGraphicsContext.saveGraphicsState()" because "context" is null at org.eclipse.swt.widgets.Widget.drawRect(Widget.java:764) at org.eclipse.swt.widgets.Canvas.drawRect(Canvas.java:170) at org.eclipse.swt.widgets.Display.windowProc(Display.java:6287) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method) at org.eclipse.swt.widgets.Display.applicationNextEventMatchingMask(Display.java:5565) at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5965) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method) at org.eclipse.swt.internal.cocoa.NSApplication.nextEventMatchingMask(NSApplication.java:92) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3983) at com.jogamp.opengl.test.junit.util.SWTTestUtil$WaitAction$1.run(SWTTestUtil.java:52) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183) at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250) at com.jogamp.opengl.test.junit.util.SWTTestUtil$WaitAction.run(SWTTestUtil.java:63) at com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2SWT3.test02AsyncEachAnimator(TestSharedContextVBOES2SWT3.java:376)
This is not observed if running using AWT (-Djava.awt.headless=false).