소스 검색

Shutting down more concurrency errors.

Glitchfinder 12 년 전
부모
커밋
6565d84cf9
1개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 8 4
      src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java

+ 8 - 4
src/main/java/com/gmail/nossr50/util/blockmeta/chunkmeta/HashChunkManager.java

@@ -336,7 +336,8 @@ public class HashChunkManager implements ChunkManager {
             }
         }
 
-        for(Entity entity : spawnedMobs) {
+        List<Entity> tempSpawnedMobs = new ArrayList<Entity>(spawnedMobs);
+        for(Entity entity : tempSpawnedMobs) {
             World entityWorld = entity.getWorld();
 
             if(world != entityWorld)
@@ -348,7 +349,8 @@ public class HashChunkManager implements ChunkManager {
             saveChunk(cx, cz, world);
         }
 
-        for(Entity entity : spawnedPets) {
+        List<Entity> tempSpawnedPets = new ArrayList<Entity>(spawnedPets);
+        for(Entity entity : tempSpawnedPets) {
             World entityWorld = entity.getWorld();
 
             if(world != entityWorld)
@@ -388,7 +390,8 @@ public class HashChunkManager implements ChunkManager {
 
         safeToRemoveMobs = false;
 
-        for(Entity entity : spawnedMobs) {
+        List<Entity> tempSpawnedMobs = new ArrayList<Entity>(spawnedMobs);
+        for(Entity entity : tempSpawnedMobs) {
             World entityWorld = entity.getWorld();
 
             if(world != entityWorld)
@@ -400,7 +403,8 @@ public class HashChunkManager implements ChunkManager {
             unloadChunk(cx, cz, world);
         }
 
-        for(Entity entity : spawnedPets) {
+	List<Entity> tempSpawnedPets = new ArrayList<Entity>(spawnedPets);
+        for(Entity entity : tempSpawnedPets) {
             World entityWorld = entity.getWorld();
 
             if(world != entityWorld)