Code:
21:11:41.259 [Timer-2] ERROR o.t.r.logic.NearestSortingList - Uncaught exception in sorting thread: java.lang.ArrayIndexOutOfBoundsException: 127
21:11:43.528 [main] ERROR o.terasology.engine.TerasologyEngine - Uncaught exception
java.lang.NullPointerException: null
at org.terasology.logic.particles.BlockParticleEmitterSystem.render(BlockParticleEmitterSystem.java:239) ~[bin/:na]
at org.terasology.logic.particles.BlockParticleEmitterSystem.renderAlphaBlend(BlockParticleEmitterSystem.java:225) ~[bin/:na]
at org.terasology.rendering.world.WorldRenderer.renderWorld(WorldRenderer.java:739) ~[bin/:na]
at org.terasology.rendering.world.WorldRenderer.render(WorldRenderer.java:564) ~[bin/:na]
at org.terasology.engine.modes.StateIngame.render(StateIngame.java:206) ~[bin/:na]
at org.terasology.engine.TerasologyEngine.mainLoop(TerasologyEngine.java:687) ~[bin/:na]
at org.terasology.engine.TerasologyEngine.run(TerasologyEngine.java:275) ~[bin/:na]
at org.terasology.engine.Terasology.main(Terasology.java:55) [bin/:na]
#
I was just wandering around in the dark digging blocks by holding down the left mouse button when it occurred.
Maybe the patch would be to skip the rest of the render loop for this particle entity if the location is found to be null:
Code:
diff --git a/engine/src/main/java/org/terasology/logic/particles/BlockParticleEmitterSystem.java b/engine/src/main/java/org/terasology/logic/particles/BlockParticleEmitterSystem.java
index fe82321..344c541 100644
--- a/engine/src/main/java/org/terasology/logic/particles/BlockParticleEmitterSystem.java
+++ b/engine/src/main/java/org/terasology/logic/particles/BlockParticleEmitterSystem.java
@@ -236,6 +236,11 @@
for (EntityRef entity : particleEntities) {
LocationComponent location = entity.getComponent(LocationComponent.class);
+
+ if (null == location) {
+ continue;
+ }
+
Vector3f worldPos = location.getWorldPosition();
if (!worldProvider.isBlockRelevant(worldPos)) {