{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"gluegen\" build number 412",
          "upstreamBuild" : 412,
          "upstreamProject" : "gluegen",
          "upstreamUrl" : "job/gluegen/"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 412,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
            "branch" : [
              {
                "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
            "branch" : [
              {
                "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
        "branch" : [
          {
            "SHA1" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 0,
      "skipCount" : 0,
      "totalCount" : 65,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#412",
  "duration" : 124065,
  "estimatedDuration" : 375087,
  "executor" : None,
  "fullDisplayName" : "gluegen » macos-x86_64 #412",
  "id" : "2011-09-27_12-20-49",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 412,
  "queueId" : -1,
  "result" : "SUCCESS",
  "timestamp" : 1317118849000,
  "url" : "https://jogamp.org/chuck/view/on%20server/job/gluegen/label=macos-x86_64/412/",
  "builtOn" : "macosx64-NV320M-10_6-jogamp-x64-sgothel-012",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/util/locks/RecursiveLock.java",
          "src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java"
        ],
        "commitId" : "4ba2f8304d8e557fff9874f9e214d476f44e40e0",
        "timestamp" : 1317108782000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Lock ChangeSet: Prepare RecursiveLock to be an implementation of it's new interface\u000a",
        "date" : "2011-09-27T09:33:02+0200",
        "id" : "4ba2f8304d8e557fff9874f9e214d476f44e40e0",
        "msg" : "Lock ChangeSet: Prepare RecursiveLock to be an implementation of it's",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java"
          },
          {
            "editType" : "delete",
            "file" : "src/java/com/jogamp/common/util/locks/RecursiveLock.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/util/locks/RecursiveLock.java",
          "src/java/com/jogamp/common/util/locks/Lock.java"
        ],
        "commitId" : "73ac81eefce6b0dbf6922d2475c4b9eb9ed8a819",
        "timestamp" : 1317108901000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Lock ChangeSet: New RecursiveLock interface. Minor API change to of tryLock throws declaration\u000a",
        "date" : "2011-09-27T09:35:01+0200",
        "id" : "73ac81eefce6b0dbf6922d2475c4b9eb9ed8a819",
        "msg" : "Lock ChangeSet: New RecursiveLock interface. Minor API change to of",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/util/locks/RecursiveLock.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/locks/Lock.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/jogamp/common/util/locks/LockDebugUtil.java",
          "src/junit/com/jogamp/common/util/locks/TestRecursiveLock01.java",
          "src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java",
          "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java",
          "src/java/com/jogamp/common/util/locks/LockFactory.java",
          "src/java/jogamp/common/util/locks/RecursiveLockImplJava5.java"
        ],
        "commitId" : "e4baba27507ce78e64a150ec6f69fb96f5721a34",
        "timestamp" : 1317109973000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Lock ChangeSet (fin): Cleanup, fix and enhance RecursiveLock implementation\u000a\u000a- RecursiveLock _is_ interface.\u000a\u000a- Use LockFactory to create a RecursiveLock.\u000a\u000a- Impl: RecursiveLockImpl01Unfairish\u000a  - just using notify w/o any queue: fast\u000a  - still enqueuing new lock-applicants if queue full (nice)\u000a  - lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)\u000a\u000a- Impl: RecursiveLockImpl01CompleteFair\u000a  - using queue and interrupt for correctness (slow)\u000a  - lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)\u000a\u000a- Impl: RecursiveLockImplJava5 for using Java5's concurrency impl.\u000a  - to verify correctness, performance and deviation of locking time\u000a\u000aTestRecursiveLock01 new performance measurements incl. simple avrg and deviation\u000ashows best combined performance-deviation w/ our RecursiveLockImpl01Unfairish\u000aos Linux and MacOSX.\u000aRecursiveLockImpl01Unfairish is the default in LockFactory.\u000a\u000aAdding 'private' LockDebugUtil, allowing validating all holdings locks\u000aof one thread as stack traces (Throwable).\u000aBesides the AbstractOwnableSynchronizer utilization, this helps debugging deadlocks\u000aand starvation very well.\u000a",
        "date" : "2011-09-27T09:52:53+0200",
        "id" : "e4baba27507ce78e64a150ec6f69fb96f5721a34",
        "msg" : "Lock ChangeSet (fin): Cleanup, fix and enhance RecursiveLock",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/java/jogamp/common/util/locks/LockDebugUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestRecursiveLock01.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/util/locks/LockFactory.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImplJava5.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/util/RunnableTask.java"
        ],
        "commitId" : "6e7ba5a27141b350a8fb7763103dff0d9dd8875a",
        "timestamp" : 1317110017000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "RunnableTask: Allow validation whether invoking thread intends to wait for the result\u000a",
        "date" : "2011-09-27T09:53:37+0200",
        "id" : "6e7ba5a27141b350a8fb7763103dff0d9dd8875a",
        "msg" : "RunnableTask: Allow validation whether invoking thread intends to wait",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/RunnableTask.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "make/scripts/runtest.sh",
          "make/scripts/make.gluegen.all.macosx.sh"
        ],
        "commitId" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
        "timestamp" : 1317110038000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "minor: test/build scripts\u000a",
        "date" : "2011-09-27T09:53:58+0200",
        "id" : "7c0bb4080a6dfb86ab6061cc24d17c133b1dd731",
        "msg" : "minor: test/build scripts",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "make/scripts/make.gluegen.all.macosx.sh"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
      "fullName" : "Sven Gothel"
    }
  ]
}