Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.95a is out! (03/26/21); Blog post: Skill Changes, Part 2 (07/15/21)

Author Topic: [0.9a RC10] Crash when mousing over upgrade in "add industry or structure" tab.  (Read 2459 times)

ReXspec

  • Ensign
  • *
  • Posts: 11
    • View Profile
    • Email

Well, this is one helluva first forum post, but I ran into a rather... unusual pointer error.

As the title states, when I mouse of the "massive solar collectors" in the "add industry or structure" (in the "colony info") tab, my game will just crash with the message:

"Fatal: null"
"Check starsector.log for more info."


To make what I'm talking about a little more clear, here is a picture of the culprit upgrade that is causing the crash (circled in red):


Here is what the log says for the error:

231942 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
   at data.campaign.econ.industries.MS_supersolar.addPostDemandSection(MS_supersolar.java:87)
   at com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry.createTooltip(BaseIndustry.java:969)
   at com.fs.starfarer.campaign.ui.marketinfo.nullnew$1.createImpl(Unknown Source)
   at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.create(Unknown Source)
   at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.beforeShown(Unknown Source)
   at com.fs.starfarer.ui.Q.showTooltip(Unknown Source)
   at com.fs.starfarer.ui.ooOo.õo0000(Unknown Source)
   at com.fs.starfarer.ui.ooOo.processInput(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.whilesuper$Oo.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.whilesuper.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.D.oooO.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.while.processInputImpl(Unknown Source)
   at com.fs.starfarer.campaign.ui.marketinfo.IndustryPickerDialog.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.while.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.newui.J.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.while.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.newui.U.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.ui.donew.dispatchEventsToChildren(Unknown Source)
   at com.fs.starfarer.ui.donew.processInputImpl(Unknown Source)
   at com.fs.starfarer.ui.Q.processInput(Unknown Source)
   at com.fs.starfarer.campaign.CampaignState.processInput(Unknown Source)
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)


My config:
Java 8.x update 201 (64-bit)
Starsector 0.9a RC10 with vmparams @ 6400mb
Windowed mode at 1768 x 992 resolution

My mods (installed and activated):
-Lightshow 1.40
-Arsenal Expansion 1.5.3c
-Artefact 1.8d
-Celestial Mount Circle 1.0
-Combat Chatter 1.9.2c
-Console Commands 3.0
-Dassault-Mikoyan Engineering 0.9.9e
-Diable Avionics 2.02
-Extratential Lanestate Union 0.5.1a (aka "Blue")
-Fix All Empty Planets v1.0
-Foundation of Borken 0.2.4-RC3
-High Tech Armada 0.4
-Junk pirates / ASP / PACK (release) 3.02
-Kadur Remnant 2.1.4
-LazyLib 2.4b
-MagicLib 0.22
-Mayasuran Navy 8.1.5
-Neutrino Corporation 1.85-RC3
-Nexerelin 0.9b RC2
-Oga Portrait Pack 1.1
-Outer Rim Alliance 0.83
-Practice Targets 1.3
-Rebalanced Pilums 1.3
-Sanguinary Anarchistic Defectors 0.9c
-Scy Nation 1.53
-Shadowyards 0.8.1
-Ship/Weapons Pack 1.9.1
-SkilledUp 1.0
-Sylphon RnD 0.9.3d
-Underworld 1.3.0b
-Upgraded Rotary Weapons 1.40
-Version Checker 1.8b
-ZZ GraphicsLib 1.3.0

Something to note in the log that I just noticed when re-reading it...

It seems like the game is trying to reference a tooltip that either:

A.  Doesn't exist.

B.  The file is corrupted/damaged

or

C.  The filepath is wrong somehow.

I hope the information I gave will help someone figure out what is going on!  ><
« Last Edit: January 28, 2019, 10:31:22 PM by ReXspec »
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 19114
    • View Profile

Not sure which mod this one is from, but it looks a bug in that mod's code for a specific industry. However, side note: java 8 is not supported and could cause other problems. I mean, you're free to use it if you want, and it may work alright - just a heads up :)
Logged

ReXspec

  • Ensign
  • *
  • Posts: 11
    • View Profile
    • Email

Not sure which mod this one is from, but it looks a bug in that mod's code for a specific industry. However, side note: java 8 is not supported and could cause other problems. I mean, you're free to use it if you want, and it may work alright - just a heads up :)

Actually, that would explain the filepath error angle of this problem... because the files names/filepaths of Java 8 are probably different then whatever version Starsector 0.9a uses...

If that is the case, what is the highest version of Java Starsector 0.9a RC10 supports?
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 19114
    • View Profile

The one it ships with - if you've got another version of Java on your system, that's fine, it should still use the one it installs in this folder:
C:\Program Files (x86)\Fractal Softworks\Starsector\jre

I'd assumed when you said java 8 that you swapped that in there for some reason, if not, never mind! At the beginning of the logfile, it should say which java version it's using, if you want to be sure.

As far as the crash, I don't think it's a file path issue. It's a crash on this line of code:
at data.campaign.econ.industries.MS_supersolar.addPostDemandSection(MS_supersolar.java:87)

Which pretty much just means there's a bug in that code. I'm not sure what's making it seem like a path issue on your end, though I could be missing something.
Logged

ReXspec

  • Ensign
  • *
  • Posts: 11
    • View Profile
    • Email

The one it ships with - if you've got another version of Java on your system, that's fine, it should still use the one it installs in this folder:
C:\Program Files (x86)\Fractal Softworks\Starsector\jre

I'd assumed when you said java 8 that you swapped that in there for some reason, if not, never mind! At the beginning of the logfile, it should say which java version it's using, if you want to be sure.

As far as the crash, I don't think it's a file path issue. It's a crash on this line of code:
at data.campaign.econ.industries.MS_supersolar.addPostDemandSection(MS_supersolar.java:87)

Which pretty much just means there's a bug in that code. I'm not sure what's making it seem like a path issue on your end, though I could be missing something.

I'll try using the version of java that the current version of Starsector supports and see if that helps with anything.
Logged

ReXspec

  • Ensign
  • *
  • Posts: 11
    • View Profile
    • Email

Nope it still crashes, which means that you are probably right about that line of code, Alex.

What could possibly be wrong with it...?
Logged

Snrasha

  • Admiral
  • *****
  • Posts: 693
    • View Profile

Nope it still crashes, which means that you are probably right about that line of code, Alex.

What could possibly be wrong with it...?

This is a crash from Shadowyard mod,  MS_ is from it.
Report this crash to MShadowy on the good thread ^^.
Logged
I am pretty bad on english. So, sorry in advance.

Gladiator Society
Add battle options on Com Relay/ Framework for modders for add their own bounty.

Sanguinary Autonomist Defectors A fan-mod of Shadowyard.

MShadowy

  • Admiral
  • *****
  • Posts: 902
    • View Profile
    • Email

... okay, that's not very helpful. Line 87 is the start of the entire addPostDemandSection (specifically the @Override) so it's basically just saying "something is wrong in here" without being specific enough to be helpful.

Does the Java 7 crash log give anything more specific?

Edit: Also some quick testing can't replicate the crash, so if you have anything more specific it would be very helpful.
« Last Edit: January 29, 2019, 06:46:17 AM by MShadowy »
Logged

ReXspec

  • Ensign
  • *
  • Posts: 11
    • View Profile
    • Email

... okay, that's not very helpful. Line 87 is the start of the entire addPostDemandSection (specifically the @Override) so it's basically just saying "something is wrong in here" without being specific enough to be helpful.

Does the Java 7 crash log give anything more specific?

Edit: Also some quick testing can't replicate the crash, so if you have anything more specific it would be very helpful.

I deleted my shadowyards folder and re-downloaded it from your mod's page.

As it turns out, I had version 0.8 RC2 of your mod, where the current version is 0.8.1.  lol

I put the most up-to-date version in my mods folder and I tried to re-create the crash.

So far, everything is running fine.  I haven't been able to re-create the crash, and the Java 7 crash log (from before I updated the mod) didn't give any clues as to what was going on.

If I had to guess, having an out-of-date mod probably meant that a dependency or call to a specific object in the game (namely the colony upgrade) was different then what the interface was asking for when I moused over the upgrade.

What is curious though, is that this is the only object "call" problem I've run into with your mod.  And I've been playing with an out-of-date version of Shadowyards for quite some time.  How I haven't run into similar "call" issues relating to Shadowyards is utterly beyond me.

In any case, thanks for your concern, Shadowy.  The issue is fixed now and hopefully this bug can serve as an object lesson as to why you should always ensure that your mods are up-to-date.  lol
« Last Edit: January 29, 2019, 07:57:29 AM by ReXspec »
Logged

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 19114
    • View Profile

... okay, that's not very helpful. Line 87 is the start of the entire addPostDemandSection (specifically the @Override) so it's basically just saying "something is wrong in here" without being specific enough to be helpful.

(Just FYI, when a line number points to something weird like that, the most likely cause is that the source code you're looking at is different compared to what's actually running.)
Logged

MShadowy

  • Admiral
  • *****
  • Posts: 902
    • View Profile
    • Email

If it was a crash from the previous version of the mod then most probably it means it was unable to find the star type due to a particular edge case with moons not returning the star without some added steps in between. Fortunately, that bugs been dealt with. I'm not sure why it didn't crash earlier in the class, but I guess we can chalk that up to java 8 being, well, java 8.

Also handy reminder, thanks Alex. Figured I should still treat it seriously, though.
Logged