EXTSCRIPT-168
fix for the concurrent modification exception
git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/scripting/trunk@1369850 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ExtScriptScannerService.java b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ExtScriptScannerService.java
index 696dd71..817279f 100644
--- a/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ExtScriptScannerService.java
+++ b/extscript-core-root/extscript-cdi/src/main/java/org/apache/myfaces/extensions/scripting/cdi/core/ExtScriptScannerService.java
@@ -65,9 +65,13 @@
{
try
{
- StartupServletContextPluginChainLoader.startup(servletContext);
- servletContext.setAttribute(RELOADING_LISTENER, new ReloadingListener());
- WeavingContext.getInstance().addListener((ReloadingListener) servletContext.getAttribute(RELOADING_LISTENER));
+
+ if (servletContext.getAttribute(RELOADING_LISTENER) == null)
+ {
+ StartupServletContextPluginChainLoader.startup(servletContext);
+ servletContext.setAttribute(RELOADING_LISTENER, new ReloadingListener());
+ WeavingContext.getInstance().addListener((ReloadingListener) servletContext.getAttribute(RELOADING_LISTENER));
+ }
}
catch (IOException e)
{
diff --git a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
index 2d81aec..82facc4 100644
--- a/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
+++ b/extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/api/WeavingContext.java
@@ -150,7 +150,9 @@
public void addListener(WeavingEventListener listener) {
- _listeners.put(listener,"");
+ if(!_listeners.containsKey(listener)) {
+ _listeners.put(listener,"");
+ }
}
public void removeListener(WeavingEventListener listener) {
diff --git a/extscript-examples/cdi-example/src/main/webapp/helloWorld.xhtml b/extscript-examples/cdi-example/src/main/webapp/helloWorld.xhtml
index 1eea0d1..14855b0 100644
--- a/extscript-examples/cdi-example/src/main/webapp/helloWorld.xhtml
+++ b/extscript-examples/cdi-example/src/main/webapp/helloWorld.xhtml
@@ -26,8 +26,8 @@
<title>Hello World</title>
</h:head>
<h:body>
- aaa
+
<h:outputText value="#{javaHello.helloWorld}" />
- aaa
+
</h:body>
</html>