diff --git a/src/main/java/rx/plugins/RxJavaPlugins.java b/src/main/java/rx/plugins/RxJavaPlugins.java index 6391a91185..acedd07449 100644 --- a/src/main/java/rx/plugins/RxJavaPlugins.java +++ b/src/main/java/rx/plugins/RxJavaPlugins.java @@ -200,7 +200,11 @@ public void registerSingleExecutionHook(RxJavaSingleExecutionHook impl) { } } - /* test */ static Object getPluginImplementationViaProperty(Class pluginClass, Properties props) { + /* test */ static Object getPluginImplementationViaProperty(Class pluginClass, Properties propsIn) { + // Make a defensive clone because traversal may fail with ConcurrentModificationException + // if the properties get changed by something outside RxJava. + Properties props = (Properties)propsIn.clone(); + final String classSimpleName = pluginClass.getSimpleName(); /* * Check system properties for plugin class.