Fix NPE race condition in ServerListPingEvent

Fixes GH-1473

If a ping is responded to prior to the server sample being populated
(pre-tick as an example) it can result in an NPE.
This commit is contained in:
BillyGalbreath 2018-09-22 23:55:30 -04:00 committed by Zach Brown
parent 004b92b0e8
commit 003c0e0766
No known key found for this signature in database
GPG key ID: CC9DA35FC5450B76

View file

@ -91,7 +91,7 @@ index 0000000000..350410527b
+ +
+ private StandardPaperServerListPingEventImpl(MinecraftServer server, NetworkManager networkManager, ServerPing ping) { + private StandardPaperServerListPingEventImpl(MinecraftServer server, NetworkManager networkManager, ServerPing ping) {
+ super(server, new PaperStatusClient(networkManager), ping.getServerData().getProtocolVersion(), server.server.getServerIcon()); + super(server, new PaperStatusClient(networkManager), ping.getServerData().getProtocolVersion(), server.server.getServerIcon());
+ this.originalSample = ping.getPlayers().getSample(); + this.originalSample = ping.getPlayers() == null ? null : ping.getPlayers().getSample(); // GH-1473 - pre-tick race condition NPE
+ } + }
+ +
+ @Nonnull + @Nonnull