{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"jogl\" build number 1,506",
          "upstreamBuild" : 1506,
          "upstreamProject" : "jogl",
          "upstreamUrl" : "job/jogl/"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1506,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
            "branch" : [
              {
                "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
            "branch" : [
              {
                "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
        "branch" : [
          {
            "SHA1" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/jogl.git"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 3,
      "skipCount" : 11,
      "totalCount" : 1146,
      "urlName" : "testReport"
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "linux-x86_64",
  "duration" : 3684682,
  "estimatedDuration" : 2541985,
  "executor" : None,
  "fullDisplayName" : "jogl » linux-x86_64 linux-x86_64",
  "id" : "1506",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 1506,
  "queueId" : 250,
  "result" : "UNSTABLE",
  "timestamp" : 1583527083358,
  "url" : "https://jogamp.org/chuck/job/jogl/label=linux-x86_64/1506/",
  "builtOn" : "linux64-AMD58xx-debian7-jogamp-x64-sgothel-002",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test-native/bug1398/make-bug1398.sh",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java"
        ],
        "commitId" : "4fad4869d4a929739c830f6ce3ac171d8dd5427a",
        "timestamp" : 1582293490000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Importing Jani's native test, attempting to reproduce the crash using XCode 11 and JOGL 2.3.2 as well as current tip\u000a\u000aThis change imports 'jani@nexcus.com' patch as\u000areported and provided in Bug 1398.\u000a\u000aI can not execute this patch properly,\u000aas received a error message regarding missing Info.plist at start.\u000a",
        "date" : "2020-02-21 14:58:10 +0100",
        "id" : "4fad4869d4a929739c830f6ce3ac171d8dd5427a",
        "msg" : "Bug 1398: Importing Jani's native test, attempting to reproduce the crash using XCode 11 and JOGL 2.3.2 as well as current tip",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/make-bug1398.sh"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test-native/bug1398/run-bug1398.sh",
          "src/test-native/bug1398/shader/RedSquareShader2.fp",
          "src/test-native/bug1398/test1398-jogamp232-01.log",
          "src/test-native/bug1398/make-bug1398.sh",
          "src/test-native/bug1398/RedSquareES2.java",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c",
          "src/test-native/bug1398/test1398-jogamp240rc-01.log",
          "src/test-native/bug1398/shader/RedSquareShader.fp",
          "src/test-native/bug1398/shader/RedSquareShader.vp"
        ],
        "commitId" : "f4f92cdc0eb89c62070a865601527097e6d5cc72",
        "timestamp" : 1582293822000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Fixing native test allowing its execution using JOGL 2.3.2 and latest tip using XCode 11\u000a\u000aChanges to test\u000a- Using own 'NSApplicationMain' entry to avoid the 'missing Info.plist' message!\u000a\u000a- Configurable CLASSPATH and LIBPATH at compile time.\u000a  Note that the java.library.path is now hardcoded as well.\u000a\u000a- Don't close stderr in test, just fflush\u000a\u000a- Don't close the JVM after launch via 'die(env)', let it run.\u000a\u000a- Java: Add GLEventListener RedSquareES2 to see something in action @ 30fps\u000a\u000a- Java: GLCanvase visible bounds\u000a",
        "date" : "2020-02-21 15:03:42 +0100",
        "id" : "f4f92cdc0eb89c62070a865601527097e6d5cc72",
        "msg" : "Bug 1398: Fixing native test allowing its execution using JOGL 2.3.2 and latest tip using XCode 11",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/run-bug1398.sh"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/shader/RedSquareShader2.fp"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/shader/RedSquareShader.fp"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/shader/RedSquareShader.vp"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/test1398-jogamp232-01.log"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/test1398-jogamp240rc-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/make-bug1398.sh"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/RedSquareES2.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test-native/bug1398/test1398-jogamp240rc_java08-01.log",
          "src/test-native/bug1398/run-bug1398.sh",
          "src/test-native/bug1398/test1398-jogamp232-01.log",
          "src/test-native/bug1398/make-bug1398.sh",
          "src/test-native/bug1398/test1398-jogamp232_java08-01.log",
          "src/test-native/bug1398/test1398-jogamp232_java11-01.log",
          "src/test-native/bug1398/RedSquareES2.java",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java",
          "src/test-native/bug1398/test1398-jogamp240rc-01.log",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
        ],
        "commitId" : "ff780fc11602fb79a7ce1dcf879fdaeb865b9fa8",
        "timestamp" : 1582309432000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Refine test case: Make classpath and libpath runtime configurable + show JOGL version\u000a",
        "date" : "2020-02-21 19:23:52 +0100",
        "id" : "ff780fc11602fb79a7ce1dcf879fdaeb865b9fa8",
        "msg" : "Bug 1398: Refine test case: Make classpath and libpath runtime configurable + show JOGL version",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/run-bug1398.sh"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/test1398-jogamp232_java11-01.log"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/test1398-jogamp232_java08-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/test1398-jogamp240rc-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/RedSquareES2.java"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/test1398-jogamp240rc_java08-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/make-bug1398.sh"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/test1398-jogamp232-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test-native/bug1398/Bug1398Launcher.c",
          "src/test-native/bug1398/Bug1398MainClass.java",
          "src/test-native/bug1398/test1398-jogamp240rc_java08-01.log",
          "src/test-native/bug1398/log/run-bug1398-sdk1011.log",
          "src/test-native/bug1398/log/hs_err_pid2328.log",
          "src/test-native/bug1398/run-bug1398.sh",
          "src/test-native/bug1398/log/run-bug1398-sdk1015.log",
          "src/test-native/bug1398/make-bug1398.sh",
          "src/test-native/bug1398/test1398-jogamp232_java08-01.log",
          "src/test-native/bug1398/test1398-jogamp232_java11-01.log",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java",
          "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
        ],
        "commitId" : "78b96b89a68ff35969aea83de294cd3cc1178f26",
        "timestamp" : 1582380677000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Crash only occurs @ -[NSOpenGLContext setView:] when using XCode 11 _and_ its default SDK 'macosx10.15'\u000a\u000aThis patch demonstrates that using the SDK 'macosx10.11' does not cause the crash @ -[NSOpenGLContext setView:].\u000a\u000aSDK 'macosx10.15' enforces Apple's own Cargo Cult of 'main-thread' by throwing a SIGILL signal (or SIGABRT)\u000a- essentially an exception.\u000a\u000aThis surely renders our code officially invalid due to this policy,\u000ai.e. we are not allowed to issue [* setView] on any non main-thread.\u000a\u000a+++\u000a\u000aThe crash occurs independently of used Java version on Java 8 - 11,\u000aas well as on JogAmp 2.3.2 - current master tip.\u000a\u000a+++\u000a\u000aThe initial remedy to issue said action on the main-thread in a blocking/wait\u000amanner has the risk to deadlock, due to\u000a\u000a1) [NSOpenGLContext setView:] itself using a mutex (Thanks to Ken Harris's analysis)\u000a\u000aand\u000a\u000a(2) in case where we are 'thread hopping':\u000a- [main-thread] Event like 'window ready' -> kick off action on EDT-thread *blocking*\u000a- [EDT-thread] Create stuff incl OpenGLContext -> kick off setView on main-thread *blocking*\u000a\u000aThis has to be further investigated.\u000a\u000aThis crash finally has been reliably reproduced now.\u000a",
        "date" : "2020-02-22 15:11:17 +0100",
        "id" : "78b96b89a68ff35969aea83de294cd3cc1178f26",
        "msg" : "Bug 1398: Crash only occurs @ -[NSOpenGLContext setView:] when using XCode 11 _and_ its default SDK 'macosx10.15'",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/log/run-bug1398-sdk1015.log"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/Bug1398Launcher.c"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/test1398-jogamp232_java11-01.log"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/test1398-jogamp232_java08-01.log"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.java"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/Bug1398macOSContextOpsOnMainThread.c"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/log/hs_err_pid2328.log"
          },
          {
            "editType" : "delete",
            "file" : "src/test-native/bug1398/test1398-jogamp240rc_java08-01.log"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/run-bug1398.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/make-bug1398.sh"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/Bug1398MainClass.java"
          },
          {
            "editType" : "add",
            "file" : "src/test-native/bug1398/log/run-bug1398-sdk1011.log"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test-native/bug1398/Bug1398Launcher.c",
          "src/jogl/native/macosx/MacOSXWindowSystemInterface.m",
          "make/stub_includes/opengl/macosx-window-system.h",
          "make/config/jogl/cgl-macosx.cfg",
          "make/scripts/tests.sh",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "make/config/jogl/cgl-macosx-CustomJavaCode.java"
        ],
        "commitId" : "d1a4d790c89934616fa1883312b4064bda9fa420",
        "timestamp" : 1582517235000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: MacOS: Perform [NSOpenGLContext setView:] on main-thread async w/o blocking\u000a\u000aSet NSOpenGLContext's NSView via [NSOpenGLContext setView:]\u000aon the main-thread as enforced since XCode 11 using SDL macosx10.15, using Runnable SetNSViewCmd.\u000a\u000aThis operation must be performed async w/o blocking to allow\u000aother tasks locking the NativeSurface on main-thread to complete.\u000a\u000aFurther, since [NSOpenGLContext setView:] acquired the CGLContext lock,\u000ait can't be locked until this task has been completed.\u000a\u000aWorst case scenario for a late [NSOpenGLContext setView:] issuance\u000amight be corrupt initial frame(s) displayed.\u000a\u000aSince all concurrent locking is performed within JOGL,\u000athe unlocked CGLContext window risk is only academic.\u000aHowever, if native 3rd party toolkits take share control,\u000awe might have a situation.\u000a\u000a+++\u000a\u000aSetNSViewCmd is issued @ makeCurrent() now as opposed to createContext(..)\u000aand associateDrawable(true). The latter was actually late as well,\u000aas it also happened after makeCurrent when updating the drawable\u000aassociation. It also missed setting a null NSView when detached!\u000a\u000arelease() will also set a null NSView if called after associateDrawable(false).\u000a\u000aSetNSViewCmd will only be issued if the NSView has been changed,\u000ai.e. first makeCurrent() or changing the drawable.\u000aIf issued, makeCurrent() will not lock the underlying CGLContext\u000aand hence allow SetNSViewCmd to perform - see above.\u000a\u000a+++\u000a\u000aNSViewDescriptor class structure replaces the less convenient method 'getNSViewHandle(..)',\u000aexposing all collected drawable characteristics as fields.\u000aNSViewDescriptor also respects a ProxySurface's OPT_UPSTREAM_SURFACELESS mode,\u000awhich results in not using any underlying NSView - similar to OPT_UPSTREAM_WINDOW_INVISIBLE.\u000a\u000aThis change ensures that all surfaceless GL operations will not use any NSView.\u000a",
        "date" : "2020-02-24 05:07:15 +0100",
        "id" : "d1a4d790c89934616fa1883312b4064bda9fa420",
        "msg" : "Bug 1398: MacOS: Perform [NSOpenGLContext setView:] on main-thread async w/o blocking",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test-native/bug1398/Bug1398Launcher.c"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface.m"
          },
          {
            "editType" : "edit",
            "file" : "make/stub_includes/opengl/macosx-window-system.h"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/config/jogl/cgl-macosx.cfg"
          },
          {
            "editType" : "edit",
            "file" : "make/config/jogl/cgl-macosx-CustomJavaCode.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java"
        ],
        "commitId" : "0fc0b0d5da38bc3a73689b95626861ca9d70e5de",
        "timestamp" : 1582518838000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "IOSUtil.IsMainThread(): Utilize caching ThreadLocal<Boolean> like OSXUtil's variant.\u000a",
        "date" : "2020-02-24 05:33:58 +0100",
        "id" : "0fc0b0d5da38bc3a73689b95626861ca9d70e5de",
        "msg" : "IOSUtil.IsMainThread(): Utilize caching ThreadLocal<Boolean> like OSXUtil's variant.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/ios/IOSUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java"
        ],
        "commitId" : "8ccea1f0ff48a39e806839330ebeb5369bc0c79a",
        "timestamp" : 1582518953000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "TestSharedContextVBOES2*3: Properly validateBuffers and setSyncObjects(..) in concurrent async test case.\u000a",
        "date" : "2020-02-24 05:35:53 +0100",
        "id" : "8ccea1f0ff48a39e806839330ebeb5369bc0c79a",
        "msg" : "TestSharedContextVBOES2*3: Properly validateBuffers and setSyncObjects(..) in concurrent async test case.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3b.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2AWT3.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestGLCanvasSWTNewtCanvasSWTPosInTabs.java",
          "src/test/com/jogamp/opengl/test/junit/newt/event/TestNewtEventModifiersNewtCanvasSWTAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor02NewtGLWindow.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTBug628ResizeDeadlockAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTBug643AsyncExec.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTGLn.java",
          "src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java",
          "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04SWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor03AWTGLn.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasSWT.java",
          "make/scripts/tests.sh",
          "make/build-test.xml",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/swt/TestGearsES2SWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor01.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java",
          "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01aSWT.java",
          "src/newt/classes/jogamp/newt/swt/event/SWTNewtEventFactory.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTEclipseGLCanvas01GLn.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTJOGLGLCanvas01GLn.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java"
        ],
        "commitId" : "36ca7245653b1a0897f2070b9acbe0f0898f5949",
        "timestamp" : 1583329327000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX/SWT Testing: Drop using 'com.jogamp.newt.util.MainThread' enforcing default test behavior\u000a\u000aSWT and OSX's UI TK have their strict threading policy we require to comply with, e.g. see Bug 1398 lately.\u000a\u000aIt doesn't help using our own MainThread vehicle to move the unit test on the OS main thread,\u000aas this removes potential causes of deadlocks - which we intend to find and resolve.\u000a\u000aThis patch removed using MainThread altogether from our ant unit testing recipe\u000aas well from our manual test scripts.\u000a\u000aUnit tests are no more executed on the 'main thread'.\u000a\u000aSWT tests are patched to comply with SWT's UI threading policy.\u000a\u000aWe also catch violations within NewtCanvasSWT and our SWT GLCanvas\u000ato provide same behavior on all platforms.\u000a",
        "date" : "2020-03-04 14:42:07 +0100",
        "id" : "36ca7245653b1a0897f2070b9acbe0f0898f5949",
        "msg" : "OSX/SWT Testing: Drop using 'com.jogamp.newt.util.MainThread' enforcing default test behavior",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestGLCanvasSWTNewtCanvasSWTPosInTabs.java"
          },
          {
            "editType" : "edit",
            "file" : "make/build-test.xml"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/swt/event/SWTNewtEventFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTGLn.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTEclipseGLCanvas01GLn.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTJOGLGLCanvas01GLn.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTBug643AsyncExec.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor03AWTGLn.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/newt/event/TestNewtEventModifiersNewtCanvasSWTAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestNewtCanvasSWTBug628ResizeDeadlockAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasSWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04SWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/swt/TestGearsES2SWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestSharedContextVBOES2SWT3.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/swt/SWTAccessor.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/swt/TestSWTAccessor02NewtGLWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01aSWT.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/com/jogamp/newt/javafx/NewtCanvasJFX.java",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/NativeSurface.java",
          "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java",
          "src/nativewindow/classes/jogamp/nativewindow/ProxySurfaceImpl.java"
        ],
        "commitId" : "3e141416ea6c85c14dc622dae57f071d5fd0ff4f",
        "timestamp" : 1583432419000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Expose NativeSurface implementation's RecursiveLock if utilized\u000a\u000aThis prepares proper release of the acquired NativeSurface lock to cure the missing CGLContext lock, see followup commit.\u000a",
        "date" : "2020-03-05 19:20:19 +0100",
        "id" : "3e141416ea6c85c14dc622dae57f071d5fd0ff4f",
        "msg" : "Bug 1398: Expose NativeSurface implementation's RecursiveLock if utilized",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/NativeSurface.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/javafx/NewtCanvasJFX.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/swt/NewtCanvasSWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/ProxySurfaceImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/GLSLMiscHelper.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasSWT.java",
          "make/scripts/tests.sh",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
        ],
        "commitId" : "d88ca606f67e16c144b36f8fd1f188fdf8531ee0",
        "timestamp" : 1583435057000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1398: Ensure CGLContext lock will be acquired before leaving user makeCurrent() call\u000a\u000aCommand SetNSViewCmd sets NSOpenGLContext's NSView via [NSOpenGLContext setView:]\u000aon the main-thread as enforced since XCode 11 using SDK macosx10.15, see Bug 1398.\u000a\u000aThis command is injected into OSX's main-thread @ NSOpenGLImpl.makeCurrent(long) only if required,\u000ai.e. issued only for a newly bound NSView and skipped for surface-less or offscreen 'surfaces'.\u000a\u000aThis operation must be performed w/o blocking other tasks locking the NativeSurface on main-thread to complete.\u000a\u000aSince [NSOpenGLContext setView:] acquires the CGLContext lock on the main-thread,\u000ait can't be locked by the calling thread until this task has been completed.\u000aCommand issuer NSOpenGLImpl.makeCurrent(long) will not acquire the CGLContext lock if this command is pending.\u000a\u000acontextMadeCurrent(true) cures the potential unlocked CGLContext by issuing\u000aa whole GLContext.release() and GLContext.makeCurrent() cycle while waiting for this command to be completed in-between.\u000aThis GLContext cycle also ensures an unlocked NativeSurface.getLock() in-between,\u000aallowing potentially blocked other tasks on the main-thread to complete and hence this queued command to execute.\u000a\u000aNotable test provoking critical multithreading issues is com.jogamp.opengl.test.junit.jogl.demos.es2.newt.TestGearsES2NewtCanvasSWT.\u000aNotable test exposing issues with an unlocked CGLContext is com.jogamp.opengl.test.junit.jogl.glsl.TestGLSLShaderState02NEWT.\u000a",
        "date" : "2020-03-05 20:04:17 +0100",
        "id" : "d88ca606f67e16c144b36f8fd1f188fdf8531ee0",
        "msg" : "Bug 1398: Ensure CGLContext lock will be acquired before leaving user makeCurrent() call",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/TestGLSLShaderState02NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NewtCanvasSWT.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/glsl/GLSLMiscHelper.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/util/SWTTestUtil.java"
        ],
        "commitId" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
        "timestamp" : 1583526857000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add missing SWTTestUtil, missed in commit 36ca7245653b1a0897f2070b9acbe0f0898f5949\u000a",
        "date" : "2020-03-06 21:34:17 +0100",
        "id" : "0779f229b0e9538c640b18b9a4e095af1f5a35b3",
        "msg" : "Add missing SWTTestUtil, missed in commit 36ca7245653b1a0897f2070b9acbe0f0898f5949",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/test/com/jogamp/opengl/test/junit/util/SWTTestUtil.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/noreply",
      "fullName" : "noreply"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/packet0.git",
      "fullName" : "packet0.git"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/xerxes",
      "fullName" : "xerxes"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/gouessej",
      "fullName" : "gouessej"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/danny.koernig",
      "fullName" : "danny.koernig"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/gottfried.haider",
      "fullName" : "gottfried.haider"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/elect86",
      "fullName" : "elect86"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/stevensro",
      "fullName" : "stevensro"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
      "fullName" : "Sven Gothel"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/hharrison",
      "fullName" : "Harvey Harrison"
    }
  ]
}