UnstableChanges

Summary

  1. Bug 1398: Avoid AWT-AppKit blocking feedback flush deadlock and SetNSViewCmd on initial makeCurrent when offscreen (details)
  2. Bug 1398: Adding test case of commit f33681bbeeb459af4de81331d6d9241d8c9a75de (details)
  3. Bug 1398: Adding TestBug1398Deadlock02AWT to manual testing tests.sh (details)
  4. Bug 1398: MacOSXCGLContext: Ensure AWT is available before using it when query java.awt.EventQueue.isDispatchThread() (details)
  5. Fix 'typo' in branching, valid config index is >= 0 (not < 0) (details)
  6. Fix TestBug1398Deadlock02AWT: Missed adaption of unit test to AWTRobotUtil & GLTestUtil changes when 'front porting' (details)
Commit 9e8a24933e9f396406f895ec137d18aefb1c2fe8 by Sven Gothel
Bug 1398: Avoid AWT-AppKit blocking feedback flush deadlock and SetNSViewCmd on initial makeCurrent when offscreen

makeCurrent shall skip SetNSViewCmd for offscreen, i.e. refine criteria of nsViewChanged.
Previous term enforced SetNSViewCmd on initial call as lastNSViewDescr was null.
Expand first term to require an actual non null NSView.

contextMadeCurrent must avoid blocking to wait for completion of our SetNSViewCmd on AppKit.
AWT has procedures running on AppKit under certain situations,
where it issues a feedback flush on AWTEDT (from Appkit) blocking.
This in turn deadlocks our SetNSViewCmd waiting on the AppKit,
as we are blocking the AWTEDT waiting for same command.

Further avoiding other potential deadlocks, by adding a 500ms timeout.
Also clearing the lastSetNSViewCmd field post wait, regardless,
which avoid repeatitive SetNSViewCmd issuance on timeout.
Note that the SetNSViewCmd, we failed to wait for eventually gets executed.
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
Commit 348d2ab9a20a3b339e2cb1ff4250c3de76c79c2a by Sven Gothel
Bug 1398: Adding test case of commit f33681bbeeb459af4de81331d6d9241d8c9a75de
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestBug1398Deadlock02AWT.java
Commit 685695952ee273a6ca9939f0b9566427bc542349 by Sven Gothel
Bug 1398: Adding TestBug1398Deadlock02AWT to manual testing tests.sh

See commits 9e8a24933e9f396406f895ec137d18aefb1c2fe8
and 348d2ab9a20a3b339e2cb1ff4250c3de76c79c2a
The file was modifiedmake/scripts/tests.sh (diff)
Commit 5c729959363167f3b9286c4b82d8d0347ef6fca8 by Sven Gothel
Bug 1398: MacOSXCGLContext: Ensure AWT is available before using it when query java.awt.EventQueue.isDispatchThread()

If AWT is not available, isAWTEventDispatchThread() returns false,
otherwise returns java.awt.EventQueue.isDispatchThread().
The file was modifiedsrc/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java (diff)
Commit d335d99df25cc929d06765c3f1af3944f124f6a7 by Sven Gothel
Fix 'typo' in branching, valid config index is >= 0 (not < 0)

This issue was introduced in commit 0a6a592c04a85d8124aa9d38b67f0caa1d739b75
and the '2nd choice branch' obviously never tested.

Thanks to Lathanda finding this issue on 6/14/20.
The file was modifiedsrc/jogl/classes/jogamp/opengl/windows/wgl/awt/WindowsAWTWGLGraphicsConfigurationFactory.java (diff)
Commit ecf6e499d3b582d651a28693c871ca14d6e8c991 by Sven Gothel
Fix TestBug1398Deadlock02AWT: Missed adaption of unit test to AWTRobotUtil & GLTestUtil changes when 'front porting'

Thanks to Julien Gouesse reminding me of this issue.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestBug1398Deadlock02AWT.java (diff)