From db5d7267937ce2dfd2af5f245d4f8af13712bdd4 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 8 Nov 2022 22:27:35 +0000 Subject: [PATCH] Addition of creature movement fail logger. --- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- .../taskmanager/MovementTaskManager.java | 21 ++++++++++++++++++- 31 files changed, 620 insertions(+), 31 deletions(-) diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java index 8d9850ff08..540229db97 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/taskmanager/MovementTaskManager.java @@ -18,8 +18,10 @@ package org.l2jmobius.gameserver.taskmanager; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Logger; import org.l2jmobius.commons.threads.ThreadPool; +import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -28,6 +30,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class MovementTaskManager { + private static final Logger LOGGER = Logger.getLogger(MovementTaskManager.class.getName()); + private static final Set> POOLS = ConcurrentHashMap.newKeySet(); private static final int POOL_SIZE = 1000; private static final int TASK_DELAY = 100; @@ -48,7 +52,22 @@ public class MovementTaskManager @Override public void run() { - _creatures.removeIf(Creature::updatePosition); + for (Creature creature : _creatures) + { + try + { + if (creature.updatePosition()) + { + _creatures.remove(creature); + } + } + catch (Exception e) + { + _creatures.remove(creature); + LOGGER.warning("MovementTaskManager: Problem updating position of " + creature); + LOGGER.warning(CommonUtil.getStackTrace(e)); + } + } } }