From cadaedcdee32c750414ccbabe5e1804aca50ac1c Mon Sep 17 00:00:00 2001 From: David Estes Date: Tue, 21 Jul 2020 16:42:05 -0400 Subject: [PATCH] fixing type-registry concurrency issue --- .../org/springsource/loaded/TypeRegistry.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/springloaded/src/main/java/org/springsource/loaded/TypeRegistry.java b/springloaded/src/main/java/org/springsource/loaded/TypeRegistry.java index 83621ea..39eea2d 100644 --- a/springloaded/src/main/java/org/springsource/loaded/TypeRegistry.java +++ b/springloaded/src/main/java/org/springsource/loaded/TypeRegistry.java @@ -1125,10 +1125,13 @@ public class TypeRegistry { if (typeId >= reloadableTypes.length) { resizeReloadableTypeArray(typeId); } - reloadableTypes[typeId] = rtype; - if ((typeId + 1) > reloadableTypesSize) { - reloadableTypesSize = typeId + 1; + synchronized(this) { + reloadableTypes[typeId] = rtype; + if ((typeId + 1) > reloadableTypesSize) { + reloadableTypesSize = typeId + 1; + } } + // allocatedIds.put(slashname, rtype); // allocatedButNotYetRegisteredItds.remove(slashname); int cglibIndex = slashname.indexOf("$$EnhancerBy"); @@ -1196,10 +1199,13 @@ public class TypeRegistry { if (typeId >= reloadableTypes.length) { resizeReloadableTypeArray(typeId); } - reloadableTypes[typeId] = rtype; - if ((typeId + 1) > reloadableTypesSize) { - reloadableTypesSize = typeId + 1; + synchronized(this) { + reloadableTypes[typeId] = rtype; + if ((typeId + 1) > reloadableTypesSize) { + reloadableTypesSize = typeId + 1; + } } + } /**