{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"jogl\" build number 938",
          "upstreamBuild" : 938,
          "upstreamProject" : "jogl",
          "upstreamUrl" : "job/jogl/"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 938,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
            "branch" : [
              {
                "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
            "branch" : [
              {
                "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
        "branch" : [
          {
            "SHA1" : "d514ecbf052d013ea8c0982c490757678075a9ea",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/jogl.git"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 7,
      "skipCount" : 0,
      "totalCount" : 553,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#938",
  "duration" : 3301723,
  "estimatedDuration" : 3583845,
  "executor" : None,
  "fullDisplayName" : "jogl » macos-x86_64 #938",
  "id" : "2013-03-22_13-52-52",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 938,
  "queueId" : -1,
  "result" : "UNSTABLE",
  "timestamp" : 1363956772000,
  "url" : "https://jogamp.org/chuck/job/jogl/label=macos-x86_64/938/",
  "builtOn" : "macosx64-NV320M-10_6-jogamp-x64-sgothel-012",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java",
          "src/newt/classes/com/jogamp/newt/event/NEWTEvent.java"
        ],
        "commitId" : "98f6f99ddc6643cfa540d6c85c64c7f8510cc1ea",
        "timestamp" : 1363880306000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NEWTEvent: Add isConsumed() and setConsumed(boolean) methods to simply usage, using the existing consumedTag attachment for compatibility and efficiency.\u000a",
        "date" : "2013-03-21T16:38:26+0100",
        "id" : "98f6f99ddc6643cfa540d6c85c64c7f8510cc1ea",
        "msg" : "NEWTEvent: Add isConsumed() and setConsumed(boolean) methods to simply",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/event/NEWTEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java",
          "src/newt/classes/com/jogamp/newt/event/NEWTEvent.java",
          "src/newt/classes/jogamp/newt/driver/android/event/AndroidNewtEventFactory.java",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/newt/classes/jogamp/newt/driver/android/NewtBaseActivity.java"
        ],
        "commitId" : "58ebd43a78491281e2c3b012666220ed47634c7e",
        "timestamp" : 1363891241000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NEWT/Android: Fix BACK button implementation, use different KeyCode mappings and allowing native action to be suppressed.\u000a\u000a- Don't trust soft-kbd visibility state, but perform invisible action. If the latter\u000a  was successful - soft-kbd was visible before.\u000a\u000a- Map BACK to VK_KEYBOARD_INVISIBLE and propagate it,\u000a  if soft-kbd was visible before.\u000a  No native default action is performed.\u000a\u000a- Map BACK to VK_ESCAPE event and propagate it,\u000a  if soft-kbd was invisible _and_ an activity was registered via registerActivity(Activity),\u000a  i.e. by NewtBaseActivity.\u000a  Otherwise proceed w/ default action (-> activity.finish()).\u000a\u000a- If the KeyListener consumed the [EVENT_KEY_RELEASED, VK_ESCAPE] event,\u000a  it will be suppressed and no default action performed.\u000a  This allows applications to have a custom 'ESCAPE' or 'BACK' handling.\u000a  Otherwise (not consumed) the default action is performed.\u000a",
        "date" : "2013-03-21T19:40:41+0100",
        "id" : "58ebd43a78491281e2c3b012666220ed47634c7e",
        "msg" : "NEWT/Android: Fix BACK button implementation, use different KeyCode",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/event/NEWTEvent.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/NewtBaseActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/event/AndroidNewtEventFactory.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
        ],
        "commitId" : "8b34a0389e07967ce0c2ccc430a7c1d0803c3e51",
        "timestamp" : 1363926781000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NEWT/Android: Remove KeyEvent.KEYCODE_HOME handling, since it doesn't work - i.e. cannot be intercepted this way.\u000a",
        "date" : "2013-03-22T05:33:01+0100",
        "id" : "8b34a0389e07967ce0c2ccc430a7c1d0803c3e51",
        "msg" : "NEWT/Android: Remove KeyEvent.KEYCODE_HOME handling, since it doesn't",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/GLEventListenerState.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch11NewtAWT.java",
          "src/jogl/classes/com/jogamp/opengl/util/GLDrawableUtil.java",
          "src/newt/classes/jogamp/newt/WindowImpl.java",
          "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java",
          "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java",
          "src/jogl/classes/com/jogamp/opengl/GLStateKeeper.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch12AWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch10NEWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch21Newt2AWT.java",
          "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase.java",
          "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java"
        ],
        "commitId" : "3ad03e41a0cda81119c23f350c00b064a4de70c2",
        "timestamp" : 1363940994000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Add GLStateKeeper handling GLEventListenerState preservation and restauration for GLAutoDrawable\u000a\u000a- New GLStateKeeper interface, package com.jogamp.opengl\u000a\u000a  Implemented by:\u000a    - GLAutoDrawableBase\u000a\u000a  Currently supported by:\u000a    - NEWT GLWindow\u000a\u000a- GLEventListenerState package move:\u000a   com.jogamp.opengl.util ->  com.jogamp.opengl\u000a",
        "date" : "2013-03-22T09:29:54+0100",
        "id" : "3ad03e41a0cda81119c23f350c00b064a4de70c2",
        "msg" : "Add GLStateKeeper handling GLEventListenerState preservation and",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch12AWT.java"
          },
          {
            "editType" : "delete",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/GLEventListenerState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/GLContextDrawableSwitchBase.java"
          },
          {
            "editType" : "add",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLStateKeeper.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch10NEWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch21Newt2AWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/junit/jogl/acore/glels/TestGLContextDrawableSwitch11NewtAWT.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/GLDrawableUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/jogamp/opengl/GLAutoDrawableBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/com/jogamp/newt/opengl/GLWindow.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/WindowImpl.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/jogl/classes/com/jogamp/opengl/util/Animator.java"
        ],
        "commitId" : "109def11bebd63f66eb0e751aa7932ce147a2738",
        "timestamp" : 1363941014000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Animator: Cleanup DEBUG output\u000a",
        "date" : "2013-03-22T09:30:14+0100",
        "id" : "109def11bebd63f66eb0e751aa7932ce147a2738",
        "msg" : "Animator: Cleanup DEBUG output",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/util/Animator.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
        ],
        "commitId" : "3673964caf2c4ac4efddffb8d7e9c28cce49b48c",
        "timestamp" : 1363941087000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NEWT/Android WindowDriver.closeNative0(..): Catch Exception at surface destroy allowing to continue destruction.\u000a",
        "date" : "2013-03-22T09:31:27+0100",
        "id" : "3673964caf2c4ac4efddffb8d7e9c28cce49b48c",
        "msg" : "NEWT/Android WindowDriver.closeNative0(..): Catch Exception at surface",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java",
          "src/test/com/jogamp/opengl/test/android/NEWTElektronActivity.java",
          "src/test/com/jogamp/opengl/test/android/NEWTGraphUI1pActivity.java",
          "src/test/com/jogamp/opengl/test/android/NEWTGearsES2TransActivity.java",
          "src/newt/classes/jogamp/newt/driver/android/NewtBaseActivity.java",
          "src/test/com/jogamp/opengl/test/android/NEWTGearsES1Activity.java",
          "src/newt/classes/jogamp/newt/driver/android/ScreenDriver.java",
          "src/test/com/jogamp/opengl/test/android/NEWTGraphUI2pActivity.java",
          "src/test/com/jogamp/opengl/test/android/NEWTGearsES2Activity.java",
          "src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java",
          "src/test/com/jogamp/opengl/test/android/MovieCubeActivity0.java",
          "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java",
          "src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java",
          "src/test/com/jogamp/opengl/test/android/NEWTRedSquareES1Activity.java",
          "src/test/com/jogamp/opengl/test/android/MovieSimpleActivity0.java",
          "src/test/com/jogamp/opengl/test/android/NEWTRedSquareES2Activity.java"
        ],
        "commitId" : "d514ecbf052d013ea8c0982c490757678075a9ea",
        "timestamp" : 1363952639000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "NEWT/Android (Bug 665): Add Support for GLStateKeeper ; onPause() always destroys ; Recognizing all GLAutoDrawable's GLAnimatorControl for pause/resume ; Use GLAnimatorControl instead of Animator\u000a\u000a- Add Support for GLStateKeeper\u000a  If !isFinishing() (HOME button), preserve the GLEventListener if an GLStateKeeper instance\u000a\u000a- onPause() always destroys\u000a  onDestroy() is too late, i.e. surfaceDestroyed() already called\u000a\u000a- Recognizing all GLAutoDrawable's GLAnimatorControl for pause/resume\u000a  pause/resume the GLAnimatorControl of all GLAutoDrawable instances\u000a\u000a- Use GLAnimatorControl instead of Animator\u000a  We used an Animator reference .. duh!\u000a\u000aNote: The EGL native WindowDriver (Android and BCM.IV) must retain their own copy of EGLGraphicsDevice,\u000a      which preserves the EGLDisplay handle due to EGLDisplayUtil reference counting per nativeHandleID.\u000a",
        "date" : "2013-03-22T12:43:59+0100",
        "id" : "d514ecbf052d013ea8c0982c490757678075a9ea",
        "msg" : "NEWT/Android (Bug 665): Add Support for GLStateKeeper ; onPause() always",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTGraphUI2pActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTElektronActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTGearsES2Activity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTGraphUI1pActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/MovieSimpleActivity0.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTRedSquareES1Activity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTGearsES1Activity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTGearsES2TransActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/MovieSimpleActivity1.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/NewtBaseActivity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/NEWTRedSquareES2Activity.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/android/ScreenDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/newt/classes/jogamp/newt/driver/bcm/vc/iv/WindowDriver.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/com/jogamp/opengl/test/android/MovieCubeActivity0.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"
    }
  ]
}