Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Unstable

Changes

Summary

  1. Fix NEWT EDTUtil Deadlock on EDTUtil.start() (details)
  2. Fix Bug 826 Regression caused by commit (details)
Commit 1c5b41f01c9f31f7bd787c6b194f7939904e239b by Sven Gothel
Fix NEWT EDTUtil Deadlock on EDTUtil.start()

DisplayImpl.runOnEDTIfAvail(..) issues EDTUtil.start()
while holding it's object-lock - if the EDT is not running,
then invokes the given task.

EDTUtil.start() impl. holds it's own edt-lock
while starting, then releases it's edt-lock while issuing a null-task.

If another thread injects a blocking task right in-between
which also acquires the display's object-lock it deadlocks.

Simply remove issuing the null-task, so EDTUtil.start()
can return immediatly (releasing edt-lock)
and allowing DisplayImpl.runOnEDTIfAvail(..)
also to release it's object-lock.

The other threads task then can be executed,
where the 'starting task' would come second - which is OK,
even though a rare occasion.

Above situation was triggered via AWT/NEWT reparenting w/ forced recreation
via TestParenting01dAWT.

+++

The null-task at EDTUtil.start() was remaining code to ensure
that the EDT completed starting, which is redundant.
The file was modified src/newt/classes/com/jogamp/newt/util/EDTUtil.java (diff)
The file was modified src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java (diff)
The file was modified make/scripts/tests.sh (diff)
The file was modified src/newt/classes/jogamp/newt/DefaultEDTUtil.java (diff)
The file was modified src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java (diff)
The file was modified src/test/com/jogamp/opengl/test/junit/newt/TestDisplayLifecycle01NEWT.java (diff)
Commit 321cac1e125f806eb437e528b343d07379b31163 by Sven Gothel
Fix Bug 826 Regression caused by commit 41190c3830157abdf9649cbf7767e57108f55075 (Bug 975)

Commit 41190c3830157abdf9649cbf7767e57108f55075,
fix for 'Bug 975 GLJPanel's OffscreenDrawable double swap',
caused a regression of commit c427ed22244df44b71a0f1f000b0f93e56c283c2,
fix for 'Bug 826: GLJPanel: Fully restore TextureState and Viewport'.

Commit 41190c3830157abdf9649cbf7767e57108f55075 issues offscreenDrawable.swapBuffers()
and hence modifying the texture unit settings before saving the TextureState,
the whole purpose of commit c427ed22244df44b71a0f1f000b0f93e56c283c2.
The file was modified src/test/com/jogamp/opengl/test/junit/jogl/awt/TestGLJPanelTextureStateAWT.java (diff)
The file was modified make/scripts/tests.sh (diff)
The file was modified make/scripts/tests-win.bat (diff)
The file was modified src/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)