lisongmechlab / lsml

Li Song Mech Lab

Home Page:http://lisongmechlab.github.io/lsml/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

XML parsing issue post 24 January 2023 Patch

GidonsClaw opened this issue · comments

LSML version: 2.0.16
Screen resolution: 2560x1440
Java version: 1.8.0_361

Steps to reproduce issue:

Open LSML
Error show on load

Actual result:
Error message with detail:

java.io.IOException: Unable to load chassi configuration for [fnr-j]!
at org.lisoft.lsml.model.database.gamedata.MwoDataReader.parseChassis(MwoDataReader.java:243)
at org.lisoft.lsml.model.database.gamedata.MwoDataReader.parseGameFiles(MwoDataReader.java:147)
at org.lisoft.lsml.view_fx.GraphicalDatabaseProvider.updateDatabase(GraphicalDatabaseProvider.java:268)
at org.lisoft.lsml.view_fx.GraphicalDatabaseProvider.loadDatabase(GraphicalDatabaseProvider.java:243)
at org.lisoft.lsml.view_fx.GraphicalDatabaseProvider.getDatabase(GraphicalDatabaseProvider.java:78)
at org.lisoft.lsml.view_fx.LiSongMechLab.backgroundLoad(LiSongMechLab.java:242)
at org.lisoft.lsml.view_fx.LiSongMechLab.access$000(LiSongMechLab.java:63)
at org.lisoft.lsml.view_fx.LiSongMechLab$1.call(LiSongMechLab.java:185)
at org.lisoft.lsml.view_fx.LiSongMechLab$1.call(LiSongMechLab.java:181)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: No such key found!: @fnr-j
at org.lisoft.lsml.model.database.gamedata.Localisation.key2string(Localisation.java:98)
at org.lisoft.lsml.model.database.gamedata.MdfMechDefinition.asChassisStandard(MdfMechDefinition.java:123)
at org.lisoft.lsml.model.database.gamedata.MwoDataReader.parseChassis(MwoDataReader.java:240)
... 11 more

Expected result:
Load as normal

Interesting, is FNR-J a new mech? It looks like PGI forgot to update their localisation files to include the human readable names...

Interesting, is FNR-J a new mech? It looks like PGI forgot to update their localisation files to include the human readable names...

Not that I know of or can find in the mech store...

Typical PGI rushing QA...

If you can't find it in the store, then it's probably a still unreleased mech... It's not uncommon for PGI to mess up data entry of new mechs or equipment. They have no validation of their files that would catch inconsistencies like this.... hecc if they'd just try to start LSML before releasing their patch they could avoid most of the bugs at this point lol...

I'll see about improving the robustness of the parser so that it can still start the application even when PGI messed up like this...

I'm kind of half way through a conversion to Java 17 that will remove the need to have a JVM installed so it might be a while before I can get this patched.

I'm kind of half way through a conversion to Java 17 that will remove the need to have a JVM installed so it might be a while before I can get this patched.

No problem, appreciate it :)

I've looked through the data files, the FNR-J lacks any mention in the localisation files, this seems pretty much like a SNAFU by PGI as yush.

If I work around this by allowing localization to quietly fail, that introduces other issues where I won't know if something actually broke because of LSML being unable to parse a new format or smth like that. I also don't want to have to special case the fnr-j, even though this has been done for some mechs in the past (I'm looking at you SMN-G, still has a broken chassis config wtf?), but doing this for the localisation data is rough.

That said, I really think it's better to wait a patch or two to see if PGI will fix the missing localisation.

I've looked through the data files, the FNR-J lacks any mention in the localisation files, this seems pretty much like a SNAFU by PGI as yush.

If I work around this by allowing localization to quietly fail, that introduces other issues where I won't know if something actually broke because of LSML being unable to parse a new format or smth like that. I also don't want to have to special case the fnr-j, even though this has been done for some mechs in the past (I'm looking at you SMN-G, still has a broken chassis config wtf?), but doing this for the localisation data is rough.

That said, I really think it's better to wait a patch or two to see if PGI will fix the missing localisation.

No worries, will keep an eye on it.

Welp funny how that works, I made some other changes that basically meant I had to work around this. The FNR-J is now unofficially called "JAILBIRD" until PGI gives it a proper name, at which point LSML will pick that up.