Fix NPE caused by lazy cleanup

This commit is contained in:
Olof Larsson 2017-05-15 07:18:12 +02:00
parent 3f123922ba
commit 18976b57be
2 changed files with 7 additions and 3 deletions

View File

@ -80,9 +80,11 @@ public class TerritoryAccess
// FIELDS: DIRECT
// -------------------------------------------- //
// This method intentionally returns null if the Faction no longer exists.
// In Board we don't even return this TerritoryAccess if that is the case.
public Faction getHostFaction()
{
return FactionColl.get().get(this.getHostFactionId());
return Faction.get(this.getHostFactionId());
}
public Set<MPlayer> getGrantedMPlayers()
@ -108,7 +110,9 @@ public class TerritoryAccess
// Fill
for (String factionId : this.getFactionIds())
{
ret.add(FactionColl.get().get(factionId));
Faction faction = Faction.get(factionId);
if (faction == null) continue;
ret.add(faction);
}
// Return

View File

@ -92,7 +92,7 @@ public class Board extends Entity<Board> implements BoardInterface
if (ps == null) return null;
ps = ps.getChunkCoords(true);
TerritoryAccess ret = this.map.get(ps);
if (ret == null) ret = TerritoryAccess.valueOf(Factions.ID_NONE);
if (ret == null || ret.getHostFaction() == null) ret = TerritoryAccess.valueOf(Factions.ID_NONE);
return ret;
}