Now, there is a potential hole in the MSTartarusShieldFinagler - if engine.getShips returns a list containing null, that'd trigger a crash. Maybe we should guard against that. But if that were the problem, I'd expect to see that class in the stack trace, and it's not there. Anyone else have any ideas?
That shouldn't happen - not something I'd suggest guarding against, and I'm pretty paranoid. (Famous last words?)
Looking at the stack trace, the crash happens in the ShipEngineControllerAPI implementation class, when it's computing the effective stats of a ship's engines - figuring out what fraction is disabled, whether to apply the zero-flux boost, whether to flame out or bring some engines back online, that sort of thing.
Just looking at that code, though, I'm not seeing anything obvious where it would crash. If a ship didn't have any engines, something weird might happen, but aside from that? Not sure. I mean, clearly something's going wrong, but what exactly, it's hard to say.