{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"jogl\" build number 931",
          "upstreamBuild" : 931,
          "upstreamProject" : "jogl",
          "upstreamUrl" : "job/jogl/"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 931,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
            "branch" : [
              {
                "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
            "branch" : [
              {
                "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
        "branch" : [
          {
            "SHA1" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/jogl.git"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 30,
      "skipCount" : 0,
      "totalCount" : 558,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "macos-x86_64",
  "duration" : 2958242,
  "estimatedDuration" : 3583845,
  "executor" : None,
  "fullDisplayName" : "jogl » macos-x86_64 macos-x86_64",
  "id" : "2013-03-19_00-54-34",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 931,
  "queueId" : -1,
  "result" : "UNSTABLE",
  "timestamp" : 1363650874000,
  "url" : "https://jogamp.org/chuck/job/jogl/label=macos-x86_64/931/",
  "builtOn" : "macosx64-NV320M-10_6-jogamp-x64-sgothel-012",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m",
          "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java",
          "src/nativewindow/native/macosx/OSXmisc.m",
          "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "make/config/jogl/cgl-macosx-CustomJavaCode.java"
        ],
        "commitId" : "896e8b021b39e9415040a57a1d540d7d24b02db1",
        "timestamp" : 1363250924000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX/CALayer: Revise CALayer 'RunOnMainThread' utilization, avoiding deadlocks\u000a\u000aRunOnMainThread(waitUntilDone:=true,..) can deadlock the main-thread if called from AWT-EDT,\u000asince the main-thread may call back to AWT-EDT while injecting a new main-thread task.\u000a\u000aThis patch revises all RunOnMainThread CALayer usage, resulting in only one required left:\u000a  - OSXUtil.AddCASublayer() w/ waitUntilDone:=false\u000a\u000aHence the CALayer code has no more potential to deadlock main-thread/AWT-EDT.\u000a\u000aOSXUtil.AddCASublayer() must be performed on main-thread, otherwise the\u000aCALayer attachment will fail - no visible rendering result.\u000a\u000a+++\u000a\u000aNote: A good trigger to test this deadlock is to magnify/zoom\u000a      the OSX desktop (click background + ctrl-mouse_wheel)\u000a      before running some unit tests.\u000a\u000a      TestGLCanvasAWTActionDeadlock01AWT and TestAddRemove02GLWindowNewtCanvasAWT\u000a      also have the potential to trigger the mentioned deadlock.\u000a",
        "date" : "2013-03-14T09:48:44+0100",
        "id" : "896e8b021b39e9415040a57a1d540d7d24b02db1",
        "msg" : "OSX/CALayer: Revise CALayer 'RunOnMainThread' utilization, avoiding",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/macosx/OSXmisc.m"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "make/config/jogl/cgl-macosx-CustomJavaCode.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2AWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m",
          "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java",
          "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java",
          "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java",
          "src/jogl/classes/javax/media/opengl/awt/GLCanvas.java"
        ],
        "commitId" : "dd705f1eb14b87b207e375ea0d71e00155a9933f",
        "timestamp" : 1363253170000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX/CALayer: Simplify FixCALayerLayout()/layoutSurfaceLayer() call, no more need for explicit call\u000a\u000a- OffscreenLayerSurface.layoutSurfaceLayer() removed, no more required\u000a\u000a- JAWTWindow adds a ComponentListener, which issues FixCALayerLayout() at resized, moved and shown.\u000a\u000a- MyNSOpenGLLayer no more requires fix*Size() methods\u000a\u000a- MyNSOpenGLLayer::setDedicatedSize() need no explicit CATransaction, performed by caller.\u000a",
        "date" : "2013-03-14T10:26:10+0100",
        "id" : "dd705f1eb14b87b207e375ea0d71e00155a9933f",
        "msg" : "OSX/CALayer: Simplify FixCALayerLayout()/layoutSurfaceLayer() call, no",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/javax/media/opengl/awt/GLCanvas.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/GLEventListenerState.java",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java"
        ],
        "commitId" : "538a41849192cc09da36eeaa5fa9ae10973d85b7",
        "timestamp" : 1363274542000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Fix NEWT WindowImpl reparent-recreate w/ GLEventListenerState: Bug introduced w/ commit e2506d7663b752f00f0a98f793ebad52e65bd1e3\u000a\u000aIn case a reparent action takes place w/ recreate,\u000aonly preserve the GLEventListenerState if the window is valid and will become visible again (wasVisible).\u000a\u000aAlso add proper DEBUG log prefix to GLEventListenerState.\u000a",
        "date" : "2013-03-14T16:22:22+0100",
        "id" : "538a41849192cc09da36eeaa5fa9ae10973d85b7",
        "msg" : "Fix NEWT WindowImpl reparent-recreate w/ GLEventListenerState: Bug",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/GLEventListenerState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/macosx/MacOSXWindowSystemInterface.m",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXPbufferCGLDrawable.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawable.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m",
          "src/nativewindow/native/macosx/OSXmisc.m",
          "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove03GLWindowNEWT.java",
          "src/jogl/classes/javax/media/opengl/awt/GLCanvas.java"
        ],
        "commitId" : "28c6472335b924080d638b33a28f8f4eedb459b1",
        "timestamp" : 1363367302000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Remodel OSX/CALayer Threading (commit 896e8b021b39e9415040a57a1d540d7d24b02db1): Run on main-thread w/o blocking ; Misc Changes\u000a\u000aCommit 896e8b021b39e9415040a57a1d540d7d24b02db1 moved all native CALayer calls to the current thread\u000ato avoid deadlocks.\u000a\u000aEven though this seemed to be fine at least resource GC (release/dealloc calls) were issued\u000avery late in time, probably due to multithreading synchronization of JAWT and/or OSX API.\u000a\u000aExample: Our 'TestAddRemove01GLCanvasSwingAWT' test didn't freed CALayer resources incl. GL ctx\u000a         when destroying the objects (AWT Frame, GLCanvas, ..), leading to resource starvation .. eventually.\u000a\u000aRemedy is a compromise of behavior before commit 896e8b021b39e9415040a57a1d540d7d24b02db1\u000aand that commit, i.e. to run CALayer lifecycle methods on main-thread, but do not block!\u000a\u000aThe careful part within MacOSXCGLContext.associateDrawable(..) performs the following block on main-thread:\u000a  - lock the context\u000a  - create NSOpenGLLayer (incl. it's own shared GL context and the DisplayLink)\u000a  - attach NSOpenGLLayer to root CALayer\u000a  - unlock the context\u000a\u000aDue to the GL ctx locking, this async offthread operation is safe within our course of operations.\u000a\u000aDetails:\u000a  - NSOpenGLContext\u000a    - Context and CVDisplayLink creation at init\u000a    - Call [ctx update] if texture/frame size changed\u000a    - 'waitUntilRenderSignal' uses default TO value if given TO is 0 to avoid deadlocks\u000a\u000a+++\u000a\u000aMisc Changes:\u000a  - Fix object type detection: isMemberOfClass -> isKindOfClass\u000a    - OSXUtil_isNSView0\u000a      OSXUtil_isNSWindow0,\u000a      CGL_isNSOpenGLPixelBuffer\u000a\u000a  - MacOSXCGLDrawable/MacOSXPbufferCGLDrawable: remove getNSViewHandle() method.\u000a    MacOSXCGLContext uses common code to detect nature of the drawable handle.\u000a\u000a  - MacOSXCGLContext/CALayer: Use safe screenVSyncTimeout values, never 0 to avoid deadlock!\u000a\u000a  - JAWTWindow.invalidate: Call detachSurfaceLayer() if not done yet\u000a",
        "date" : "2013-03-15T18:08:22+0100",
        "id" : "28c6472335b924080d638b33a28f8f4eedb459b1",
        "msg" : "Remodel OSX/CALayer Threading (commit",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestGLAutoDrawableGLCanvasOnOffscrnCapsAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXPbufferCGLDrawable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLDrawable.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/macosx/OSXmisc.m"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface.m"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove03GLWindowNEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestGearsES2NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/javax/media/opengl/awt/GLCanvas.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/DefaultEDTUtil.java",
          "src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java",
          "src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestFBOAutoDrawableDeadlockAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestPBufferDeadlockAWT.java",
          "src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java"
        ],
        "commitId" : "ed911109d40e0fca3b2263a4617f35d475612549",
        "timestamp" : 1363568955000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Adapt to GlueGen commit b1eb7ca6b9d7dec7ff62c1f1e8ef0a0545724d2f: Function- RunnableTask adds PrintStream 'exceptionOut' argument in ctor.\u000a",
        "date" : "2013-03-18T02:09:15+0100",
        "id" : "ed911109d40e0fca3b2263a4617f35d475612549",
        "msg" : "Adapt to GlueGen commit b1eb7ca6b9d7dec7ff62c1f1e8ef0a0545724d2f:",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestFBOAutoDrawableDeadlockAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestPBufferDeadlockAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/awt/AWTEDTUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/DefaultEDTUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/newt/event/BaseNewtEventModifiers.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/swt/SWTEDTUtil.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/nativewindow/native/NativewindowCommon.h",
          "src/nativewindow/native/x11/Xmisc.c",
          "src/nativewindow/native/NativewindowCommon.c",
          "src/nativewindow/native/macosx/OSXmisc.m"
        ],
        "commitId" : "3f2da22cfb682d0eb4fedec98b088f95371f8ef4",
        "timestamp" : 1363587385000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NativeWindow OSXUtil RunOnMainThread: Use daemon attachment and do not detach; Add RunLater0(..)\u000a",
        "date" : "2013-03-18T07:16:25+0100",
        "id" : "3f2da22cfb682d0eb4fedec98b088f95371f8ef4",
        "msg" : "NativeWindow OSXUtil RunOnMainThread: Use daemon attachment and do not",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/NativewindowCommon.c"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/macosx/OSXmisc.m"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/NativewindowCommon.h"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/x11/Xmisc.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/macosx/MacOSXWindowSystemInterface.m",
          "make/stub_includes/opengl/macosx-window-system.h"
        ],
        "commitId" : "4457b343fe8eba3f2da096a72e38b1aac978ffd5",
        "timestamp" : 1363587484000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX CGL: Don't issue [NSOpenGLContext clearDrawable] for [NSOpenGLContext setView: view] which breaks pbuffer; Add [NSOpenGLContext clearDrawable].\u000a",
        "date" : "2013-03-18T07:18:04+0100",
        "id" : "4457b343fe8eba3f2da096a72e38b1aac978ffd5",
        "msg" : "OSX CGL: Don't issue [NSOpenGLContext clearDrawable] for",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface.m"
          },
          {
            "editType" : "edit",
            "file" : "make/stub_includes/opengl/macosx-window-system.h"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m",
          "src/nativewindow/native/macosx/OSXmisc.m"
        ],
        "commitId" : "12e868f79938f44eba6f50313f977be76d8ea2bb",
        "timestamp" : 1363644018000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "MyNSOpenGLContext::dealloc: Avoid 'invalid context'\u000a",
        "date" : "2013-03-18T23:00:18+0100",
        "id" : "12e868f79938f44eba6f50313f977be76d8ea2bb",
        "msg" : "MyNSOpenGLContext::dealloc: Avoid 'invalid context'",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/native/macosx/MacOSXWindowSystemInterface-calayer.m"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/native/macosx/OSXmisc.m"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java",
          "src/jogl/classes/jogamp/opengl/GLDrawableHelper.java",
          "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java",
          "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java",
          "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04AWT.java",
          "src/jogl/classes/jogamp/opengl/GLContextImpl.java",
          "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java",
          "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java",
          "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/windows/WindowsJAWTWindow.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java",
          "src/nativewindow/classes/jogamp/nativewindow/jawt/x11/X11JAWTWindow.java"
        ],
        "commitId" : "f354fb204d8973453c538dda78a2c82c87be61dc",
        "timestamp" : 1363645348000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX/CALayer: OSX/CALayer Threading Part3 - Run CALayer ops in a streaming design on main-thread w/o [infinitive] blocking\u000a\u000aHistory:\u000a  Part1   commit 896e8b021b39e9415040a57a1d540d7d24b02db1 (Run CALayer Ops on current thread to avoid blocking)\u000a  Part2   commit 28c6472335b924080d638b33a28f8f4eedb459b1 (Run CALayer Ops on main-thread w/o blocking)\u000a\u000aDependency:\u000a  GlueGen commit 4becdfa125b07ff969d6540e1112735b53cd15eb (Fix RecursiveLockImpl* Timeout corner case)\u000a\u000aPart2 misses essential locking of the OpenGL context (and it's surface upfront) while creating the\u000aNSOpenGLLayer instance. The latter instantiates a OpenGL context shared w/ JOGL's, hence it cannot be locked.\u000a\u000aEncapsulating NSOpenGLLayer creation/attachment and it's detachment/release in sub-classes\u000aAttachNSOpenGLLayer and DetachNSOpenGLLayer, where instances will be streamed on main-thread.\u000a\u000aBoth tasks are triggered at associateDrawable(boolean bound).\u000a\u000aThe mentioned GL context locking requires disturbs the 'streaming' design considerably in AttachNSOpenGLLayer.\u000aIt is solved by attempt to acquire the recursive lock of the surface and the context via 'tryLock(maxwait)'\u000aw/ screen-vSync-period/2. If the locks could not be acquired completly, the AttachNSOpenGLLayer instance\u000awill be re-queued to the main-thread for later execution.\u000a\u000aBefore DetachNSOpenGLLayer is being streamed, it is validated whether AttachNSOpenGLLayer did run.\u000aA recursive situation does happen w/ resizing an offscreen pbuffer drawable! Hence extra care is being taken.\u000a",
        "date" : "2013-03-18T23:22:28+0100",
        "id" : "f354fb204d8973453c538dda78a2c82c87be61dc",
        "msg" : "OSX/CALayer: OSX/CALayer Threading Part3 - Run CALayer ops in a",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/com/jogamp/nativewindow/awt/JAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/macosx/MacOSXJAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/newt/TestSwingAWTRobotUsageBeforeJOGLInitBug411.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/javax/media/nativewindow/OffscreenLayerSurface.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove02GLWindowNewtCanvasAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting04AWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/macosx/cgl/MacOSXCGLContext.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLDrawableHelper.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/x11/X11JAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLContextImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/macosx/OSXUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/nativewindow/classes/jogamp/nativewindow/jawt/windows/WindowsJAWTWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/TestAddRemove01GLCanvasSwingAWT.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/newt/native/MacWindow.m",
          "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java",
          "src/newt/native/NewtMacWindow.m",
          "src/newt/native/NewtMacWindow.h",
          "src/newt/classes/jogamp/newt/DefaultEDTUtil.java",
          "make/scripts/tests.sh"
        ],
        "commitId" : "81cbcdc8469143587b2044661dd613c798ae02ba",
        "timestamp" : 1363645980000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "OSX/NEWT: Following CALayer streaming design, i.e. issue NSWindow/NSView Ops on main-thread w/o blocking; NEWT/WindowImpl: Volatile multithreaded mutable values\u000a\u000aSimilar to commits:\u000a  28c6472335b924080d638b33a28f8f4eedb459b1\u000a  f354fb204d8973453c538dda78a2c82c87be61dc\u000a\u000amain-thread operations cannot block main-thread.\u000a\u000aLuckily we are able to create the NSWindow and NSView instance uninitialized (deferred) on the current thread,\u000awhile issuing their initialization on the main-thread w/o blocking.\u000a\u000aFurther more a size glitch is fixed, which didn't take the title bar into account.\u000a\u000a+++\u000a\u000aNEWT/WindowImpl: Volatile multithreaded mutable values\u000a\u000aSince position, size and other attributes might get changes off-thread, these fields needs to be volatile.\u000a",
        "date" : "2013-03-18T23:33:00+0100",
        "id" : "81cbcdc8469143587b2044661dd613c798ae02ba",
        "msg" : "OSX/NEWT: Following CALayer streaming design, i.e. issue NSWindow/NSView",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/tests.sh"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/DefaultEDTUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/MacWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/NewtMacWindow.h"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/native/NewtMacWindow.m"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/macosx/WindowDriver.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/javax/media/opengl/awt/GLJPanel.java"
        ],
        "commitId" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
        "timestamp" : 1363646140000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "GLJPanel: No need to utilize AWT Component's default ImageObserver code - pixel data is ready when invoked.\u000a",
        "date" : "2013-03-18T23:35:40+0100",
        "id" : "8e56bd80ab17970e2a45039a44d15e36514c4d50",
        "msg" : "GLJPanel: No need to utilize AWT Component's default ImageObserver code",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/javax/media/opengl/awt/GLJPanel.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
      "fullName" : "Sven Gothel"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/wamei.cho",
      "fullName" : "wamei.cho"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/eric.brayet",
      "fullName" : "eric.brayet"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/rob.hatcherson",
      "fullName" : "rob.hatcherson"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/xerxes",
      "fullName" : "xerxes"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/gouessej",
      "fullName" : "gouessej"
    },
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/harvey.harrison",
      "fullName" : "harvey.harrison"
    }
  ]
}