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; + } } + } /** diff --git a/springloaded/src/main/java/org/springsource/loaded/agent/FileSystemWatcherInterface.java b/springloaded/src/main/java/org/springsource/loaded/agent/FileSystemWatcherInterface.java new file mode 100644 index 0000000..225c729 --- /dev/null +++ b/springloaded/src/main/java/org/springsource/loaded/agent/FileSystemWatcherInterface.java @@ -0,0 +1,18 @@ +package org.springsource.loaded.agent; + +import java.io.File; + +public interface AbstractFileSystemWatcher { + /** + * Shutdown the thread. + */ + public void shutdown(); + + /** + * Add a new file to the list of those being monitored. If the file is something that can be watched, then this + * method will cause the thread to start (if it hasn't already been started). + * + * @param fileToMonitor the file to start monitor + */ + public void register(File fileToMonitor); +} diff --git a/springloaded/src/main/java/org/springsource/loaded/agent/MacOsFileSystemWatcher.java b/springloaded/src/main/java/org/springsource/loaded/agent/MacOsFileSystemWatcher.java new file mode 100644 index 0000000..476b38b --- /dev/null +++ b/springloaded/src/main/java/org/springsource/loaded/agent/MacOsFileSystemWatcher.java @@ -0,0 +1,4 @@ +package org.springsource.loaded.agent; + +public class MacOsFileSystemWatcher { +} diff --git a/springloaded/src/main/java/org/springsource/loaded/agent/PollingFileSystemWatcher.java b/springloaded/src/main/java/org/springsource/loaded/agent/PollingFileSystemWatcher.java new file mode 100644 index 0000000..f3e69fc --- /dev/null +++ b/springloaded/src/main/java/org/springsource/loaded/agent/PollingFileSystemWatcher.java @@ -0,0 +1,4 @@ +package org.springsource.loaded.agent; + +public class PollingFileSystemWatcher { +} diff --git a/springloaded/src/test/java/org/springsource/loaded/test/FileSystemWatcherTests.java b/springloaded/src/test/java/org/springsource/loaded/test/PollingFileSystemWatcherTests.java similarity index 100% rename from springloaded/src/test/java/org/springsource/loaded/test/FileSystemWatcherTests.java rename to springloaded/src/test/java/org/springsource/loaded/test/PollingFileSystemWatcherTests.java