Commits on Feb 22, 2017
Commits on Dec 12, 2016
  1. Bug 1295: Add linux-aarch64 GNU/Linux AArch64 crosscompile support

      Add missing -DisLinux=true required when crosscompiling
      Remove -marm -mfloat-abi=hard flags unrecognisable by aarch64 crosscompile toolchain
      Symlink to /usr/local/x-tools/aarch64-unknown-linux-gnueabi/bin/aarch64-unknown-linux-gnueabi-*
      New crosscompile script
      glibc 2.17 is the first glibc version that support aarch64
      however memcpy is not versioned for aarch64
      Disable versioning for linux glibc/aarch64
    Signed-off-by: Xerxes Rånby <>
    xranby committed Dec 12, 2016
Commits on Dec 10, 2016
  1. Bug 1295: Add linux-aarch64 GNU/Linux AArch64 support

    make/build.xml: New target declare.linux.aarch64
                    Update target declare.linux to depend on declare.linux.aarch64
    make/gluegen-cpp-tasks-base.xml: Fix aarch64 jre/lib/arm -> jre/lib/aarch64
    make/lib/gluegen-cpptasks-linux-aarch64.xml: Added
    make/scripts/ Added
    Tested on DragonBoard 410c running Linaro Debian
    Platform: LINUX / Linux 4.4.8-linaro-lt-qcom (4.4.8), aarch64 (ARM64, EABI_AARCH64), 4 cores, littleEndian true
    MachineDataInfo: runtimeValidated true, 32Bit false, primitive size / alignment:
      int8    1 / 1, int16   2 / 2
      int     4 / 4, long    8 / 8
      int32   4 / 4, int64   8 / 8
      float   4 / 4, double  8 / 8, ldouble 16 / 16
      pointer 8 / 8, page    4096
    Platform: Java Version: 1.8.0_91 (1.8.0u91), VM: OpenJDK 64-Bit Server VM, Runtime: OpenJDK Runtime Environment
    Platform: Java Vendor: Oracle Corporation,, JavaSE: true, Java6: true, AWT enabled: true
    Signed-off-by: Xerxes Ranby <>
    xranby committed with xranby May 27, 2016
  2. Add GitLab CI .gitlab-ci.yml, build and test each commit on aarch64 a…

    …nd x86-64 linux systems.
    xranby committed Dec 10, 2016
Commits on Nov 16, 2015
  1. Bump scripts to jre1.8.0_66

    committed Nov 16, 2015
Commits on Nov 15, 2015
  1. Bug 1268 - DynamicLibraryBundleInfo: Add NativeLibrary's 'searchSyste…

    …mPath' and 'searchSystemPathFirst' attributes
    NativeLibrary can be instantiate by defining
    'searchSystemPath' and 'searchSystemPathFirst' arguments,
    allowing to specify the system path role while looking up the library.
    Since NativeLibrary is utilized via DynamicLibraryBundleInfo upstream,
    the latter interface shall allow users to specify those attributes.
    committed Nov 15, 2015
Commits on Oct 15, 2015
Commits on Oct 12, 2015
Commits on Oct 10, 2015
  1. Bump to 2.4.0-rc

    committed Oct 10, 2015
Commits on Oct 9, 2015
  1. Bump to 2.3.2 Release

    committed Oct 9, 2015
Commits on Oct 7, 2015
  1. Bump semver to commit 4f50b49c955f2bde2bb7eb4c7493206ec6bb1f2f

    +    Fix JLS Binary Compat: Moving methods and fields upwards for classes _and_ interfaces is OK
    +    - We shall also travers all interfaces upwards
    +    - All methods and fields found upwards must be tested for compatibility as well!
    +    Further:
    +    - Add class-name to Field- and MethodInfo via new intermediate AbstractMemberInfo.
    +      The class-name is used to have allow differs to find a class move upwards!
    +    - Pretty printing of class move binary-compatible change
    committed Oct 7, 2015
Commits on Oct 3, 2015
  1. Bug 1243 - Fix IOUtil.cleanPathString(..) special case ; Allow IOUtil…

    … and Uri to handle relative path
    Fix IOUtil.cleanPathString(..) special case:
      Special case '/a/./../b' -> '/b'
      requires to resolve './' before '../'.
    Allow IOUtil and Uri to handle relative path:
    - IOUtil.getParentOf(..)
    - IOUtil.cleanPathString(..)
      Handle cases:
       'a/./../b' -> 'b'
       '.././b' -> '../b'
    - Uri: Handle null scheme
    committed Oct 3, 2015
  2. Bug 1237 - Clarify IOUtil.getResource(..) for better efficiency, i.e.…

    … allow caller to skip relative futile lookup
    IOUtil.getResource(..) and IOUtil.ClassResources, needs more clarity.
    ClassLoader shall be passed explicitly next to the optional
    relative context Class instance.
    This allows better efficiency, i.e. caller can pass ClassLoader
    but skip a possible relative lookup, if not existing.
    committed Oct 3, 2015
Commits on Sep 24, 2015
  1. Bug 1231: Usability of CustomCompress API incl zip-level; Replace tes…

    …t-exe deflated files w/ zip-level 9
    committed Sep 24, 2015
  2. Bug 1231: Add Windows x86_64 test executable ; Use 'WinMain' for Wind…

    …ows test-executable ; Use CustomInflate for Performance
    - Use 'WinMain' for Windows test-executable
      This may have little difference than using std 'main' entry
    - Add Windows x86_64 test executable
      Since the reporter claims the test executable works well
      on Windows i386, maybe utilizing a x86_64 test executable
      on same VM fixes the issue
    - Use CustomInflate for Performance
      - Skips GZIP header
      - Adds own custom header [magic, deflate-size, inflate-size]
      - Own header allows simplified I/O read and deflation
    committed Sep 24, 2015
Commits on Sep 23, 2015
  1. Bug 1219: IOUtil.testDirExe: Issue Process.destroy() in finalize bloc…

    …k to ensure launched native exe process terminates.
    See Bug 1219 comment 58: It seems that on some Windows platforms
    the launched native process using our test-exe keeps running
    even though we issued Process.waitFor().
    Hence we issue Process.destroy() in the finalize block
    to at least attempt to terminate it.
    Note: The Process implementation is platform specific and may vary.
    committed Sep 23, 2015
Commits on Sep 21, 2015
  1. Bug 1219: IOUtil.testDirExe: Disable 'existingExe' DEBUG_EXE feature …

    …by hardcoded 'DEBUG_EXE_EXISTING_FILE = false'
    This is required for security, i.e. not allowing to execute any pre-existing files!
    In case we need to manually debug this issue,
    we can re-enable it manually and locally, but not in public builds!
    committed Sep 21, 2015
  2. Bug 1219: Fix IOUtil.StreamMonitor EOS handling

    - Make StreamMonitor a daemon thread, i.e. not hindering VM from exit
    - Earmark each InputStream's EOS state
      and only attempt to readByte if !eos
    - End loop and hence the thread if all InputStream
      have reached EOS.
    - Don't close the InputStream.
      Closing the InputStream is expected to be done
      by the owner, otherwise no EOS could even be reached!
    - Flush the output PrintStream at thread exit
    committed Sep 21, 2015
  3. Bug 1219: IOUtil.testDirExe: Satisfactory when executed, more debug o…

      - Satisfactory when executed
        Failure to execute produce an IOException right at ProcessBuilder.start().
        Hence we can allow an unexpected process exit value,
        since we only want to learn whether executable files are allowed.
      - More debug options
        DEBUG_EXE:          'jogamp.debug.IOUtil.Exe'
        DEBUG_EXE_NOSTREAM: 'jogamp.debug.IOUtil.Exe.NoStream'
        - if DEBUG_EXE
          - a pre-existing 'jogamp_exe_tst'+<SUFFIX> will be used as-is.
          - the test-exe will not be deleted
          - StreamMonitor is being used to dump stdout/stderr
            if !DEBUG_EXE_NOSTREAM.
    committed Sep 21, 2015
Commits on Sep 19, 2015
  1. Bug 1219: Use Win32 API for test PE exe, not console

    Previous test PE exe, commit 0ebc539,
    was a console exe. A console exe opens a new console window
    if not being launched from one.
    New test PE exe is produced w/ '-mwindows', i.e. for Win32 API
    w/o a console.
    committed Sep 19, 2015
  2. Bug 1219: Sporadic failure to determine 'executable temp base directo…

    …ry' on Windows using 'exe-windows-i586-268b.bin' (Fix attempt #1)
    Replacing the tiny 268 byte sized 'exe-windows-i586-268b.bin' PE file
    w/ a regular 2048 byte sized PE file 'exe-windows-i386-2048b.bin'.
    File is produced via:
      c:\mingw\bin\gcc -nodefaultlibs -nostdlib -s -Os -o tiny.exe tiny.c
    Adding the 305 byte sized gzipped version 'exe-windows-i386-2048b.bin.305b.gz'
    to the gluegen-rt jar file to reduce the payload for non Windows platforms.
    Adding special property 'jogamp.debug.IOUtil.Exe' to debug testing the exe file,
    enable via '-Djogamp.debug.IOUtil.Exe'.
    Passes here on all Windows machines, however, the prev. one worked here as well.
    committed Sep 19, 2015
Commits on Sep 18, 2015
  1. Fix Android LauncherTempFileCache: Cannot use gluegen-rt dependencies

    GlueGen'w runtime dependency com.jogamp.common.util.InterruptSource
    was introduced in commit 1c4e2d3
    but the launcher loads the same ..
    committed Sep 18, 2015
Commits on Sep 15, 2015
  1. Bug 1213: Refine changes .. comments and API

    - Use InterruptSource.Thread.create(..),
      while reducing InterruptSource.Thread ctors to 3 variants.
    - Use InterruptSource.Thread instead of java.lang.Thread where possible
    - Use SourcedInterruptedException where possible
    - SingletonInstanceServerSocket: start(), stop() and run()
      - Persistent-Wait and Cancelable
    - Add @since 2.3.2
    committed Sep 15, 2015
Commits on Sep 12, 2015
  1. Bug 1213 (related): Fix TaskBase, RunnableTask and FunctionTask imple…

    …mentation and semantics
    - TaskBase
      - requires 'volatile boolean isExecuted' for atomic query of same semantics
      - fix isInQueue(): condition was reverse in regars to 'isExecuted'
      - expose 'Thread getExecutionThread()' as learned within run() method.
    - RunnableTask
      - deprecate: 'static invoke(final boolean waitUntilDone, final Runnable runnable)',
        since it's nonsense, use instead.
      - 'static RunnableTask invokeOnNewThread(..)'
        - uses InterruptSource.Thread
        - Persistent-Wait
        - Cancelable using InterruptedRuntimeException
    - FunctionTask
      - deprecate 'static <U,V> U invoke(final boolean waitUntilDone, final Function<U,V> func, final V... args)',
        since it's nonsense, use func.eval(args) instead.
      - 'static FunctionTask<U,V> invokeOnNewThread(..)'
        - uses InterruptSource.Thread
        - Persistent-Wait
        - Cancelable using InterruptedRuntimeException
    committed Sep 12, 2015
  2. Bug 1213: Expose InterruptSource, SourcedInterruptedException and Int…

    - InterruptSource interface declares methods to retrieve
      the source of a Thread.interrupt() call.
    - InterruptSource.Thread implements InterruptSource,
      i.e. allows code running within such thread to learn about
      the interrupt source (stack trace).
    - SourcedInterruptedException is a InterruptedException specialization
      which may include the source of the causing Thread.interrupt() call.
    - InterruptedRuntimeException
      An unchecked RuntimeException propagating an InterruptedException
      where handling of the latter is not desired.
      The causing InterruptedException may be of type SourcedInterruptedException,
      hence a detailed stack trace analysis might be possible.
    committed Sep 12, 2015
Commits on Sep 5, 2015
  1. SingletonJunitCase: Allow explicit disabling singletonLock to allow m…

    …anual test cases to run concurrently
    committed Sep 5, 2015
  2. Bug 1213 - RecursiveThreadGroupLockImpl01Unfairish.unlock() always in…

    …terrupts original-owner, even if not waiting at unlock()
    An interrupt() is always issued
    from group members on the original owner.
    This shall only happen, if the original owner is waiting
    within unlock() for all group members to be unlocked.
    This extra interrupt causes side-effects, see Bug 1211.
    Only issue the interrupt to wake-up the original owner
    iff waiting within unlock!
      Issue 'Thread.interrupted()' to clear a slipped interrupt
      call after while-loop.
    committed Sep 5, 2015
Commits on Sep 1, 2015
Commits on Aug 29, 2015
  1. RecursiveThreadGroupLockImpl01Unfairish: Add toString() in IllegalArg…

    …umentException exceptions
    committed Aug 29, 2015
Commits on Aug 18, 2015
  1. Bug 1145, Bug 1172: Add performance counter for native-jar lookup: Pr…

    …operty 'jogamp.debug.JNILibLoader.Perf'
    committed Aug 18, 2015