Skip to content

BUG REPORT – Client Crash with Turkish lang. #301

@osmnozk

Description

@osmnozk

here's the bug report and solution to fix it buddy :)
BUG REPORT – Client Crash with Turkish Locale on Multiplayer Servers

Mod: Passive Skill Tree (daripher.skilltree)
Version: 0.6.14b (Forge)
Minecraft: 1.19.2
Forge: 43.5.1
Environment: Multiplayer (dedicated server)
OS: Windows (client language set to Turkish)

DESCRIPTION

When playing on a multiplayer server, opening the Passive Skill Tree screen causes a client-side crash if the client system language / locale is set to Turkish.

The same setup does NOT crash in singleplayer, and the issue disappears immediately if the client system language (or JVM locale) is changed to English (US).

This strongly suggests a locale-sensitive string handling issue on the client GUI side.

CRASH DETAILS

The crash is caused by a NullPointerException:

java.lang.NullPointerException: Cannot invoke
"daripher.skilltree.skill.PassiveSkill.getDirectConnections()"
because "skill" is null

Crash location:

daripher.skilltree.client.screen.SkillTreeScreen.addSkillConnections()

The crash occurs while rendering skill connections in the GUI.

ANALYSIS / SUSPECTED CAUSE

It appears that skill IDs received from the server are parsed or transformed on the client using locale-sensitive string operations such as:

toLowerCase()
toUpperCase()

Under the Turkish locale, characters like i / I / İ / ı are transformed differently, which can cause:

Skill IDs to be altered on the client

Registry lookups to fail

The skill variable to resolve as null

GUI code to call methods on a null skill, causing a crash

This explains why:

The crash happens only on multiplayer

Singleplayer works correctly (client and server share the same JVM and locale)

Changing the client locale to English fixes the issue immediately

This is a well-known Java issue commonly referred to as the “Turkish locale bug”.

CONFIRMED WORKAROUNDS

Any of the following completely fixes the crash:

Setting Windows system language and keyboard layout to English (United States)

Launching Minecraft with the following JVM arguments:

-Duser.language=en
-Duser.country=US

This confirms that the issue is locale-related and client-side.

SUGGESTED FIX

Ensure that all locale-sensitive string operations related to skill IDs use a fixed locale, for example:

toLowerCase(Locale.ROOT)
toUpperCase(Locale.ROOT)

instead of relying on the system default locale.

Additionally, adding proper null checks before accessing skill connections would prevent the hard crash.

EXPECTED BEHAVIOR

Passive Skill Tree GUI should open normally regardless of client system language

Multiplayer behavior should be consistent with singleplayer

No crash should occur due to client locale settings

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions