{
  "_class" : "hudson.matrix.MatrixRun",
  "actions" : [
    {
      
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UpstreamCause",
          "shortDescription" : "Started by upstream project \"gluegen\" build number 888",
          "upstreamBuild" : 888,
          "upstreamProject" : "gluegen",
          "upstreamUrl" : "job/gluegen/"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 888,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
            "branch" : [
              {
                "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
            "branch" : [
              {
                "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
        "branch" : [
          {
            "SHA1" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "git://jogamp.org/srv/scm/gluegen.git"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 0,
      "skipCount" : 0,
      "totalCount" : 248,
      "urlName" : "testReport"
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#888",
  "duration" : 560015,
  "estimatedDuration" : 189647,
  "executor" : None,
  "fullDisplayName" : "gluegen » linux-x86_64 #888",
  "id" : "888",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 888,
  "queueId" : 246,
  "result" : "SUCCESS",
  "timestamp" : 1442296653797,
  "url" : "https://jogamp.org/chuck/job/gluegen/label=linux-x86_64/888/",
  "builtOn" : "linux64-AMD58xx-debian7-jogamp-x64-sgothel-002",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java",
          "src/java/jogamp/common/util/locks/RecursiveThreadGroupLockImpl01Unfairish.java"
        ],
        "commitId" : "db7ce1c9c271edf6dc08db9f920adc93df9b2bb0",
        "timestamp" : 1441420973000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1213 - RecursiveThreadGroupLockImpl01Unfairish.unlock() always\u000ainterrupts original-owner, even if not waiting at unlock()\u000aRecursiveThreadGroupLockImpl01Unfairish.unlock():\u000aAn interrupt() is always issued from group members on the original\u000aowner.\u000aThis shall only happen, if the original owner is waiting within unlock()\u000afor all group members to be unlocked.\u000aThis extra interrupt causes side-effects, see Bug 1211.\u000aOnly issue the interrupt to wake-up the original owner iff waiting\u000awithin unlock!\u000a+++\u000aRecursiveLockImpl01CompleteFair:\u000a Issue 'Thread.interrupted()' to clear a slipped interrupt\u000a call after while-loop.\u000a",
        "date" : "2015-09-05 04:42:53 +0200",
        "id" : "db7ce1c9c271edf6dc08db9f920adc93df9b2bb0",
        "msg" : "Bug 1213 - RecursiveThreadGroupLockImpl01Unfairish.unlock() always",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/RecursiveThreadGroupLockImpl01Unfairish.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/junit/util/SingletonJunitCase.java"
        ],
        "commitId" : "b94d0c4e2ac4b29ffe6bb832d37b83c6d32497fe",
        "timestamp" : 1441422014000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "SingletonJunitCase: Allow explicit disabling singletonLock to allow\u000amanual test cases to run concurrently\u000a",
        "date" : "2015-09-05 05:00:14 +0200",
        "id" : "b94d0c4e2ac4b29ffe6bb832d37b83c6d32497fe",
        "msg" : "SingletonJunitCase: Allow explicit disabling singletonLock to allow",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/junit/util/SingletonJunitCase.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/util/InterruptedRuntimeException.java",
          "src/java/com/jogamp/common/JogampRuntimeException.java",
          "src/java/com/jogamp/common/util/InterruptSource.java",
          "src/java/com/jogamp/common/ExceptionUtils.java",
          "src/java/com/jogamp/common/util/SourcedInterruptedException.java"
        ],
        "commitId" : "47495cd2a228534578731346c8baf2b190bcd241",
        "timestamp" : 1442070832000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1213: Expose InterruptSource, SourcedInterruptedException and\u000aInterruptedRuntimeException\u000a- InterruptSource interface declares methods to retrieve\u000a the source of a Thread.interrupt() call.\u000a- InterruptSource.Thread implements InterruptSource,\u000a i.e. allows code running within such thread to learn about\u000a the interrupt source (stack trace).\u000a- SourcedInterruptedException is a InterruptedException specialization\u000a which may include the source of the causing Thread.interrupt() call.\u000a- InterruptedRuntimeException\u000a An unchecked RuntimeException propagating an InterruptedException\u000a where handling of the latter is not desired.\u000a The causing InterruptedException may be of type\u000aSourcedInterruptedException,\u000a hence a detailed stack trace analysis might be possible.\u000a",
        "date" : "2015-09-12 17:13:52 +0200",
        "id" : "47495cd2a228534578731346c8baf2b190bcd241",
        "msg" : "Bug 1213: Expose InterruptSource, SourcedInterruptedException and",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/JogampRuntimeException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/ExceptionUtils.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/util/InterruptedRuntimeException.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/util/SourcedInterruptedException.java"
          },
          {
            "editType" : "add",
            "file" : "src/java/com/jogamp/common/util/InterruptSource.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/com/jogamp/common/util/FunctionTask.java",
          "src/java/com/jogamp/common/util/TaskBase.java",
          "src/java/com/jogamp/common/util/RunnableTask.java"
        ],
        "commitId" : "2b97ed6d238a0db1e2cf7bdf15349e90eaaa8dfc",
        "timestamp" : 1442071771000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1213 (related): Fix TaskBase, RunnableTask and FunctionTask\u000aimplementation and semantics\u000a- TaskBase\u000a - requires 'volatile boolean isExecuted' for atomic query of same\u000asemantics\u000a - fix isInQueue(): condition was reverse in regars to 'isExecuted'\u000a - expose 'Thread getExecutionThread()' as learned within run() method.\u000a- RunnableTask\u000a - deprecate: 'static invoke(final boolean waitUntilDone, final Runnable\u000arunnable)',\u000a   since it's nonsense, use runnable.run() instead.\u000a  - 'static RunnableTask invokeOnNewThread(..)'\u000a   - uses InterruptSource.Thread\u000a   - Persistent-Wait\u000a   - Cancelable using InterruptedRuntimeException\u000a- FunctionTask\u000a - deprecate 'static <U,V> U invoke(final boolean waitUntilDone, final\u000aFunction<U,V> func, final V... args)',\u000a   since it's nonsense, use func.eval(args) instead.\u000a  - 'static FunctionTask<U,V> invokeOnNewThread(..)'\u000a   - uses InterruptSource.Thread\u000a   - Persistent-Wait\u000a   - Cancelable using InterruptedRuntimeException\u000a",
        "date" : "2015-09-12 17:29:31 +0200",
        "id" : "2b97ed6d238a0db1e2cf7bdf15349e90eaaa8dfc",
        "msg" : "Bug 1213 (related): Fix TaskBase, RunnableTask and FunctionTask",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/FunctionTask.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/TaskBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/RunnableTask.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket01.java",
          "make/scripts/runtest.sh",
          "src/java/com/jogamp/common/util/TaskBase.java",
          "src/java/jogamp/common/util/locks/SingletonInstanceServerSocket.java",
          "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket00.java",
          "src/java/com/jogamp/common/util/InterruptSource.java",
          "src/java/jogamp/android/launcher/LauncherTempFileCache.java",
          "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java",
          "src/java/com/jogamp/common/util/cache/TempFileCache.java",
          "src/java/com/jogamp/common/util/FunctionTask.java",
          "src/java/com/jogamp/common/util/RunnableTask.java",
          "src/java/com/jogamp/common/util/SourcedInterruptedException.java"
        ],
        "commitId" : "1c4e2d3ea379fe6578dfb84e10f22729b71b1ae5",
        "timestamp" : 1442286734000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1213: Refine changes .. comments and API\u000a- Use InterruptSource.Thread.create(..),\u000a while reducing InterruptSource.Thread ctors to 3 variants.\u000a- Use InterruptSource.Thread instead of java.lang.Thread where possible\u000a- Use SourcedInterruptedException where possible\u000a- SingletonInstanceServerSocket: start(), stop() and run()\u000a - Persistent-Wait and Cancelable\u000a- Add @since 2.3.2\u000a",
        "date" : "2015-09-15 05:12:14 +0200",
        "id" : "1c4e2d3ea379fe6578dfb84e10f22729b71b1ae5",
        "msg" : "Bug 1213: Refine changes .. comments and API",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/SourcedInterruptedException.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/android/launcher/LauncherTempFileCache.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/RunnableTask.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/cache/TempFileCache.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/FunctionTask.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/TaskBase.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/InterruptSource.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/SingletonInstanceServerSocket.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket00.java"
          },
          {
            "editType" : "edit",
            "file" : "make/scripts/runtest.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/java/jogamp/android/launcher/MainLauncher.java",
          "src/java/com/jogamp/common/util/IOUtil.java",
          "src/junit/com/jogamp/common/util/locks/TestRecursiveThreadGroupLock01.java",
          "src/java/jogamp/common/util/locks/SingletonInstanceServerSocket.java",
          "src/junit/com/jogamp/common/util/TestRunnableTask01.java",
          "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket00.java",
          "src/junit/com/jogamp/common/util/locks/TestRecursiveLock01.java",
          "src/java/jogamp/common/util/locks/SingletonInstanceFileLock.java"
        ],
        "commitId" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
        "timestamp" : 1442291795000,
        "author" : {
          "absoluteUrl" : "https://jogamp.org/chuck/user/sven%20gothel",
          "fullName" : "Sven Gothel"
        },
        "authorEmail" : "sgothel@jausoft.com",
        "comment" : "Bug 1213: Use InterruptSource.Thread\u000a",
        "date" : "2015-09-15 06:36:35 +0200",
        "id" : "3e40d97a9a7a60e746b3703d2c7d3f4884159a52",
        "msg" : "Bug 1213: Use InterruptSource.Thread",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/SingletonInstanceServerSocket.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/android/launcher/MainLauncher.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestRecursiveLock01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/jogamp/common/util/locks/SingletonInstanceFileLock.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestRecursiveThreadGroupLock01.java"
          },
          {
            "editType" : "edit",
            "file" : "src/java/com/jogamp/common/util/IOUtil.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/locks/TestSingletonServerSocket00.java"
          },
          {
            "editType" : "edit",
            "file" : "src/junit/com/jogamp/common/util/TestRunnableTask01.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jogamp.org/chuck/user/sgothel",
      "fullName" : "Sven Gothel"
    }
  ]
}