Skip to content

Fix critical bugs, improve version checking, and add Korean localization - #1

Open
ava-jahlee wants to merge 1 commit into
0xD3ADCODE:mainfrom
ava-jahlee:feature/improvements
Open

ava-jahlee wants to merge 1 commit into
0xD3ADCODE:mainfrom
ava-jahlee:feature/improvements

Conversation

@ava-jahlee

Copy link
Copy Markdown

Summary

  • Fix NPE crash when URL fetch fails - wrap Document in Optional, cache failures properly in ConcurrentHashMap
  • Semantic version comparison - new versionsMatch/normalizeVersion so v1.0 == 1.0 and 1.0.0 == 1.0 no longer show false update alerts
  • Fix regex group validation - check groupCount before accessing capture groups to prevent IndexOutOfBoundsException
  • Replace ForkJoinPool with dedicated ExecutorService for HTTP requests to avoid blocking the shared pool
  • Replace Timer with ScheduledExecutorService in FXUtils to prevent thread leaks
  • Non-blocking rate limiting - replace Thread.sleep in App.processNextMod with ScheduledExecutorService
  • Move data directory to ~/.sims4modchecker/ with automatic legacy migration
  • Add scraping rules for MCCC, WickedWhims, Basemental, NisaK, Lumpinou, SimRealist
  • URL scheme validation in downloadAndSaveImage (only http/https)
  • Add Korean localization (i18n_ko.properties)
  • Remove unused Gluon plugin, pin Java toolchain to 23, bump version to 1.1

Files Changed (8 files, +248 / -122)

File Changes
VersionChecker.java NPE fix, semantic versioning, dedicated thread pool, regex validation
DataManager.java Data dir migration, new scraping rules, URL validation, logger
App.java Non-blocking rate limit, semantic version check, Korean UI
FXUtils.java Timer to ScheduledExecutorService
ModListCell.java Use new versionsMatch()
AppUtils.java Korean language mapping
build.gradle Remove Gluon, pin Java 23, version 1.1
i18n_ko.properties New Korean translation file

Test Plan

  • Build with ./gradlew build (requires Java 23)
  • Launch app and verify mod list loads without NPE
  • Test version check with mods that have mismatched version formats
  • Verify Korean locale displays correctly
  • Confirm data files migrate from legacy location to ~/.sims4modchecker/

- Fix NPE crash in VersionChecker.scanForVersions when URL fetch fails

- Fix failed URLs permanently cached as null (now uses Optional)

- Replace string equals with normalized version comparison

- Add dedicated HTTP thread pool instead of blocking ForkJoinPool

- Replace Thread.sleep with ScheduledExecutorService for rate limiting

- Fix Timer thread leak in FXUtils.runLaterDelayed

- Add scraping rules for MCCC, WickedWhims, Basemental, NisaK, Lumpinou, SimRealist

- Move data directory to ~/.sims4modchecker/ with legacy migration

- Add URL scheme whitelist for image downloads

- Add Korean localization

- Add regex capture group validation

- Remove unused GluonFX plugin, add Java 23 toolchain

- Bump version to 1.1

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant