From 67cc5e1e453fc01d0625c8d668a7b155a4362281 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 5 Apr 2019 04:53:07 +0000 Subject: [PATCH] Avoid probable concurrency issues. --- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 5 +++-- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- .../gameserver/instancemanager/InstanceManager.java | 2 +- .../l2jmobius/gameserver/instancemanager/ZoneManager.java | 7 ++++--- 24 files changed, 59 insertions(+), 47 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_5.0_Salvation/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_5.5_EtinasFate/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_6.0_Fafurion/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 4c0455c102..c21b4d91de 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -363,7 +363,7 @@ public final class InstanceManager implements IXmlReader * @param templateId the instance template id * @return */ - public Instance createDynamicInstance(int templateId) + public synchronized Instance createDynamicInstance(int templateId) { while (getInstance(_dynamic) != null) { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index f2b8e01d06..99455cd838 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -69,7 +70,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -187,7 +188,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty()) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java index 5ea229cf1b..64370ff273 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/InstanceManager.java @@ -69,7 +69,7 @@ public final class InstanceManager implements IXmlReader // Client instance names private final Map _instanceNames = new HashMap<>(); // Instance templates holder - private final Map _instanceTemplates = new HashMap<>(); + private final Map _instanceTemplates = new ConcurrentHashMap<>(); // Created instance worlds private int _currentInstanceId = 0; private final Map _instanceWorlds = new ConcurrentHashMap<>(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java index 9a0bd870f2..02ef6e4413 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/com/l2jmobius/gameserver/instancemanager/ZoneManager.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalInt; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -68,7 +69,7 @@ public final class ZoneManager implements IXmlReader private final Map, ConcurrentHashMap> _classZones = new ConcurrentHashMap<>(); private final Map _spawnTerritories = new ConcurrentHashMap<>(); - private volatile int _lastDynamicId = 300000; + private final AtomicInteger _lastDynamicId = new AtomicInteger(300000); private List _debugItems; private final ZoneRegion[][] _zoneRegions = new ZoneRegion[(World.MAP_MAX_X >> SHIFT_BY) + OFFSET_X + 1][(World.MAP_MAX_Y >> SHIFT_BY) + OFFSET_Y + 1]; @@ -191,7 +192,7 @@ public final class ZoneManager implements IXmlReader } else { - zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId++; + zoneId = zoneType.equalsIgnoreCase("NpcSpawnTerritory") ? 0 : _lastDynamicId.incrementAndGet(); } attribute = attrs.getNamedItem("name"); @@ -366,7 +367,7 @@ public final class ZoneManager implements IXmlReader } if (checkId(zoneId)) { - LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previuos definition."); + LOGGER.config(getClass().getSimpleName() + ": Caution: Zone (" + zoneId + ") from file: " + f.getName() + " overrides previous definition."); } if ((zoneName != null) && !zoneName.isEmpty())