Download Latest Version Release 7.4.2 source code.zip (3.6 MB)
Email in envelope

Get an email when there's a new version of OSHI

Home / oshi-parent-7.4.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-18 5.0 kB
Release 7.4.1 source code.tar.gz 2026-07-18 2.6 MB
Release 7.4.1 source code.zip 2026-07-18 3.5 MB
Totals: 3 Items   6.0 MB 1
Bug Fixes and Improvements
  • #3441: Wrap AppKit/Cocoa display-name calls in an autorelease pool, extract ObjCFunctions FFM bindings, and use ExceptionUtil for consistent error handling - @dbwiddis.
  • #3442: Convert static memoized suppliers to instance fields, allowing cached data to be reclaimed when users create new SystemInfo instances - @dbwiddis.
  • #3443: Share memoized iostat supplier across disk instances; cache pluggable hardware lists (displays, USB, sound cards, graphics cards) in the HAL with a 3-second TTL - @dbwiddis.
  • #3444: Consolidate try/catch-log-return-default patterns to use ExceptionUtil - @dbwiddis.
  • #3459: Deduplicate the Windows CentralProcessor frequency queries into the shared base, and fix the JNA per-processor current-frequency numbering, which mis-assigned frequencies to logical processors on multi-processor-group/NUMA systems - @dbwiddis.
  • #3473: Fix several macOS bugs: correct Intel Mac sensor temperatures that were under-reported by the SP78 fractional byte, decode process working directories and login sessions as UTF-8, and add missing null/bounds guards on native results - @dbwiddis.
  • #3478: Fix several Windows bugs: stop reporting a UPS/non-system battery as the system battery, restore the WMI fallback (and avoid an NPE) when a PDH wildcard collection fails, drop phantom file stores for volumes that can't be queried, keep enumerating sound cards past an incomplete registry key, retain sessions without a client address, and include processors in NUMA nodes spanning more than 64 logical processors - @dbwiddis.
  • #3479: Fix several Windows bugs: return all configured DNS servers instead of an empty list when more than one is present, keep querying the OpenHardwareMonitor/LibreHardwareMonitor namespaces after an initial failure so late-started sensors still appear, and classify CD-ROM drives as non-local - @dbwiddis.
  • #3480: Align remaining JNA/FFM inconsistencies: report disk type (Removable/SSD/HDD/Unknown) on the native-free Linux backend, allocate a large enough buffer for long UTF-16 device names in the Windows JNA DeviceTree, fix WMI query when COM is already initialized in another apartment, returning zeroed TCP/UDP stats instead of null on a query failure, detecting x86 via GetNativeSystemInfo (correct under WOW64), and retrying the initial PDH_NO_DATA performance-counter sample - @dbwiddis.
  • #3481: Share one registry-value parser between the JNA and FFM Windows installed-applications backends, so an application is resolved identically regardless of backend even when a value is stored as REG_DWORD or REG_BINARY rather than a string - @dbwiddis.
  • #3482: Fix macOS getThreadCount() on the default JNA backend, which under-reported the thread count (a proc_listpids buffer size passed as an element count, and stale reused-buffer data counted for processes proc_pidinfo could not fill), and release the CoreFoundation device dictionary and lookup keys leaked per disk enumeration in the JNA disk-type detection - @dbwiddis.
  • #3483: Fix several Windows backend issues: guard against a hard crash when enumerating a network session with a null client name, allocate the AMD ADL callback buffer from the C heap so the driver's free() is valid, close leaked system event-log handles, and read REG_QWORD/REG_BINARY registry values in the FFM backend so graphics-card VRAM is reported consistently with the JNA backend - @dbwiddis.
  • #3484: Fix several parsing and consistency issues: return empty instead of throwing from ParseUtil.getStringBetween on a single unmatched delimiter, throw the documented IllegalArgumentException (not ArrayIndexOutOfBoundsException) for mismatched tick arrays, correct an off-by-one bounds guard in Solaris Prtvtoc, decode FreeBSD/Solaris utmpx session strings as UTF-8, and read native utmpx for Solaris sessions in the FFM backend to match the JNA backend - @dbwiddis.

Full change log

Source: README.md, updated 2026-07-18