Mathieu Féry (2): feat(callbackGenerator): Prevent NPE during call of java callback feat(manual): Update configuration documentation (all are documented). SiboVG (1): Fix casting in Buffers.c Sven Gothel (25): InterruptSource.Thread: Add ctor variant w/ sole Runnable argument (was missing) Bump 2.6.0-rc-... Add WorkerThread: A re-start'able, pause'able and interrupt'able worker thread with an optional minimum execution duration WorkerThread: Move 'streamErr' Exception to local Runnable WorkerThread: Add optional minDelay to throttle excecution WorkerThread: Fix minDelayMS assignment using validated field value WorkerThread: Remove minDelayMS field, have it in Runnable branch only WorkerThread: Enhanced testing, added optional StateCallback for state changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc) Uri: Added `Uri tryUriOrFile(final String uri_s)` for convenience / usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String) WorkerThread.start(paused): Merge RUNNING | ACTIVE build.xml: Fix typo in a target description AudioSink: Just pass a finte buffer size (KISS), add getLastBufferedPTS() to access the last buffered audio pts Clock/Platform: Add currentMillis() analogue to currentNanos(), returning current monotonic milliseconds **since start of this application** AudioSink/TimeFrame1: API doc: Add notes about integer stored milliseconds for PTS and duration, i.e. good for 24.855 days AudioSink: Rename getQueued{Time->Duration}(), add updateQueue() Bug 1472: Enhance AV Sync: Pass through PTS object in AudioSink, tracking last PTS value against System Clock Reference (SCR) PTS: get(currentMillis): Employ rounding in integer conversion PTS: Add copy constructor Bug 1479: NativeLibrary: Add getNativeLibraryPath() returning queried used native library path, supported throughout DynamicLibraryBundle[Info] Bug 1474: Allow temp folder for exe-file test to contain parenthesis on Windows Bug 1474: Only quote exe-file path on Windows for execution Bug 1481 - Hide [ArgumentIs]PascalString argument's length TestStructGen*: Enable standalone testing, enforce Platform.initSingleton() Bug 1481 - Remove redundant isPascalLen() branch PTS: Add millisToTimeStr(..) convenient time string representation, also used by added get{SCR, Last, }TimeStr(..) methods Sven Göthel (73): PTS: Add convenient getCurrent() passing Clock.currentMillis() to get(long). PTS: Add toMillis(String), parsing string representation in '[H[H]:]m[m]:s[s][.S*]' using custom DateTimeFormatter to milliseconds, complementing millisToTimeStr(..) PTS: Rename millisToTimeStr() -> toTimeStr(), analogue to toMillis() Adding StringUtil, containing basic utility functions as well as unicode space (whitespace) and full- and halfwidth tests. Bump runtest.sh script w/ StringUtil test Rename StringUtil.strip() -> StringUtil.trim(), refine API doc HowToBuild: Debian 12 jogamp-env: Default sourcelevel/targetlevel to 1.8 jogamp-env: Cleanup whitespace bump test script Eclipse: Bump + Add CDT for native files Bug 1510: NativeLibrary shall respect OS library-path environment variable for searching in system-path Build/test: Use OpenJDK-21 per default JogAmpMacOSVersions: Bump adding MacOS 15 Sequoia testing Update md -> html Use Java-11 Target and Android SDK 36 / NDK 29 (2025-06-25) Android NDK 29 strip is llvm-strip Tests: Increase timing/clock tolerance: TestClock01 + TestWorkerThread01 JDK-8309361: JDK-21 perf-issue (annotation) JDK-21 Perf: TestIntIntHashMap: Add 2nd warm-up, increase tolerance to 4x on JDK-21 (1.5 on JDK < 21) Replace 'semver' w/ 'japicmp' for Java >= 11 Compatibility Eclipse Java-11 (min target) setting Eclipse: Drop android from build-path, no more working w/ using JRE-11 from JDK-21 DynamicLookupHelper: Add isOpen() DynamicLibraryBundle: Expose `toolGetProcAddressHandle` and add `NativeLibrary getToolLibrary(final int i)` DynamicLibraryBundle:loadLibraries(): Allow having toolLibSymbolNames.size() < toolLibNames.size() Cleanup android apk task: Only leave aligned-unsigned 'name-unsigned.apk' and aligned-signed 'name.apk' Add doxygen.all.zip and doxygen.public.zip Doxygen targets Fix doc/HowToBuild.html: Remove target.* options (we use defaults) Doxygen: Realign w/ orig 'javadoc' locations and archive name, to preserve doc-root doc/GlueGen_Mapping.md: Add anchors for Doxygen (Mainpage); Use pandoc `markdown+lists_without_preceding_blankline` doc/*.md: Fix comment of new source format `markdown+lists_without_preceding_blankline` VersionSemanticsUtil: Ignore missing classes, report to stdout and use summary only uses-sdk android:minSdkVersion="24" android:targetSdkVersion="35" (2025-08-31 requirements) Bug 1519 - NativeLibrary: Clarify search order, allow added search-path + add property `jogamp.primary.library.path` Bug 1519 - NativeLibrary: `searchPathPrepend` shall act independent of `addToSearchPath`, do a null-check when using (Windows) NativeLibrary.LibPath: Use pre-calculated hash code NativeLibrary: Simplify system search API doc Bug 1520: JNI: Only request min JNI_VERSION_1_6 (Android) Bug 1520: Package visibility in Android 11 TestVersionNumber: Add test w/ an `ES 3.10` version Bug 1520: Android 14 (SDK API 34): Fix Writable dex file is not allowed Android: Add android-stripped.jar (API 24) less java.* packages, avoiding collisions w/ Eclipse editor Eclipse: Use android-stripped.jar in .classpath (via use library) JNILibLoaderBase.addNativeJarLibsImpl: Enhance DEBUG output jogamp-androidtasks: aapt.signed: Add assets also from {jarbasename}, drop jarbasename suffix '(-android.*$)' glibc-compat-symbols: Add GLIBC_COMPAT_SYMBOL for libdl (dladdr, dlclose, dlerror, dlopen and dlsym) doc/JogAmpPlatforms: JogAmp's Supported Platforms (Evolved from JogAmpMacOSVersions) gluegen-cpptasks-base: Whitespace VersionNumber*: toString() drops unused components; Added VersionNumberString ctor for convenience glibc-compat-symbols: Add macro `GLIBC_NOVERSION_SYMBOL` for libdl (dladdr, dlclose, dlerror, dlopen and dlsym) Eclipse: Bump lang settings doc: Use reachable absolute html links Android: Min API 24 -> 26 JogAmpPlatforms: Fix typo Eclipse: Use `Android 26 (stripped)` User Library to gluegen/make/lib/android-sdk/26/android-stripped.jar Remove maven '-android' aliasing, our make-copy-jars-one handles it Fix JVM_JNI6.c #error message Bug 1523: JavaRetire src/java/net/highteq/nativetaglet/NativeTaglet.java Bug 1523: Documentation for Java8 + adding unit- and bring-up tests Bug 1523: Eclipse Java8 settings Bug 1523: Java8 build setup using target.releaselevel=8 and target.buildlevel=11 Bug 1523: Enhance UnsafeUtil: Expose certain get/put methods as well as getDirectBufferAddress Bug 1526 - JarUtil::getJarBasename: Remove '.jar' suffix check of result Bug 1527 - JogampVersion: Accept accept first manifest w/ extension-name if no extension matches Bug 1527: VersionUtil.getManifest: Exclude the parent-classloader resources to locate manifest Bug 1529: Updated FreeBSD Support Bug 1529: Updated FreeBSD Support (HowToBuild) JogAmpPlatforms*: Add versioned variant(s) Bug 1529: FreeBSD: Use apache-ant pkg default Bug 1531: Specify jvmarg.modules and jvmarg.generic and use 'em for unit testing Bug 1532: UnsafeUtil: Remove usage of deprecated field `sun.misc.Unsafe::objectFieldOffset` (JDK 24 warning) Prepare 2.6.0 Release Build