File Details
OptiPortal-1.1.5.jar
- R
- Mar 24, 2026
- 18.45 MB
- 13
- Early Access
File Name
OptiPortal-1.1.5.jar
Supported Versions
- Early Access
[1.1.5] - 2026-03-23
Known issue: Minor inefficiency in the keepalive path.
Fixed
BUG FIX — Chunk preloading aborted immediately on server startup: The JVM heap guard used the wrong formula, causing it to see near-maximum heap usage even when the server had just started and the JVM had not yet expanded its heap. Preloading would abort before any zones were ever loaded. The guard now correctly measures actual used heap against the configured maximum.
BUG FIX — Enhanced preloader loaded duplicate chunks already owned by other zones: The enhanced predictive and warm load paths skipped the deduplication check present in the base preloader, causing chunks already claimed by another zone to be requested from the world again. The enhanced paths now skip chunks that are already owned and only load genuinely new ones.
BUG FIX — Tier registry leaked stale entries after TTL eviction: When the TTL enforcer removed an expired zone, it released the zone's chunk pins and deleted it from storage but did not remove its entry from the in-memory tier registry. The stale tier entry persisted indefinitely, causing the zone to appear as COLD in status output and interfering with tier-aware logic even though the zone no longer existed.
BUG FIX — Deduplication metric reported newly-loaded chunks instead of skipped ones: The chunk deduplication counter tracked chunks that were loaded for the first time rather than chunks that were skipped because they were already owned. The metric now correctly counts chunks that were deduplicated away.
BUG FIX — Cache manager metrics were siloed from the rest of the plugin: The cache manager created its own isolated metrics collector instead of sharing the one owned by the plugin. Metrics recorded inside the cache manager were never visible to the plugin's reporting and bStats integration.
BUG FIX — Portal link confidence counters could be corrupted by a concurrent decay sweep: The pending-link decay task ran on a background thread without holding the lock used by the link-recording path. A concurrent write to a pending link's observation count or timestamp while the decay task was reading those fields was a data race under the Java Memory Model. The fields are now declared volatile so reads by the decay task always see the latest written values.
BUG FIX — JVM errors during chunk loading triggered recovery logic: When a non-recoverable JVM
Error(such asOutOfMemoryError) occurred during chunk loading, it was wrapped in a genericExceptionand passed to the error handler, which would attempt retry and recovery logic — the wrong response under severe JVM stress.Errortypes are now logged directly at SEVERE level and not forwarded to the error handler. RecoverableExceptiontypes are unaffected.