njthomson / SrvSurvey

A new to help Commanders in planet based opperations
GNU General Public License v3.0
38 stars 1 forks source link

Object+reference+not+set+to+an+instance+of+an+object. #25

Closed D0bl0z closed 10 months ago

D0bl0z commented 10 months ago

What happened?

At a guardian structure. Clicked on 'show map', then clicked on 'all beacons and structures'. Closed the 'all beacons and structures' window. Clicked on 'all ruins' - then the Oops window appeared. Also, when I clicked on 'create issue on github', the github site gave an error - whoa there! your request is too long - attached txt file github error https address bar link.txt is the https link from the github error page address bar...

Version

1.0.9.75

Exception message

NullReferenceException:Object reference not set to an instance of an object.

at SrvSurvey.canonn.Canonn.<>c__DisplayClass28_0.b_1(GuardianRuinEntry ) in D:\a\SrvSurvey\SrvSurvey\SrvSurvey\net\Canonn.cs:line 288 at System.Linq.Enumerable.WhereListIterator`1.ToList() at SrvSurvey.canonn.Canonn.loadAllRuins() in D:\a\SrvSurvey\SrvSurvey\SrvSurvey\net\Canonn.cs:line 288 at SrvSurvey.FormAllRuins.prepareAllRows() in D:\a\SrvSurvey\SrvSurvey\SrvSurvey\FormAllRuins.cs:line 104 at SrvSurvey.FormAllRuins.FormAllRuins_Load(Object sender, EventArgs e) in D:\a\SrvSurvey\SrvSurvey\SrvSurvey\FormAllRuins.cs:line 54 at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl() at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam) github relevant log output file.txt

Exception stack

I had to submit a manual issue, not sure what info should go here.

Contact Details

qbot2@aol.com

Relevant log output

See the attached 'Relevant log output file.txt'
njthomson commented 10 months ago

Thank you @D0bl0z for these details, the attached log output shows that a bug whilst scanning obelisks allowed bad data to be stored (which then breaks things when loading that data).

The problem lies in file: %appdata%\SrvSurvey\SrvSurvey\1.1.0.0\guardian\F4577557\Synuefe ZL-J d10-109 E 3-ruins-2.json. You can remove the corrupt data by removing lines starting with "!--" from this block in that file:

  "activeObelisks": [
    "!---d",
    "!---e",
    "G13!-ca,or-H12-e",
    "G18!-ca-H8-e",
    "!---b",
    "U04!-ur,or-B11-e,d",
    "!---a",
    "T18!-ca,ta-H11-g",
    "!---b,g",
    "A09!-ca,ur-H10-g,a"
  ],

Please close SrvSurvey before editing this file, or it may clobber your changes.

I will also be looking into a code fix to prevent such bad data getting stored in the first place.

njthomson commented 10 months ago

@D0bl0z - it's also probably that other files will contain bad data - which can be confirmed if you see "Failed to read data: An item with the same key has already been added. Key:" in the logs.

If this happens, look at the data logged just below that line and open up the file from %appdata%\SrvSurvey\SrvSurvey\1.1.0.0\guardian\F4577557\ matching bodyName and index and delete any lines starting "!--". Please close SrvSurvey before making any edits.

njthomson commented 10 months ago

@D0bl0z - please give build 1.0.9.89 a try - let me know if the problem continues.