Return-Path: Delivered-To: apmail-struts-commits-archive@locus.apache.org Received: (qmail 52141 invoked from network); 2 Dec 2008 06:42:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 2 Dec 2008 06:42:19 -0000 Received: (qmail 61967 invoked by uid 500); 2 Dec 2008 06:42:26 -0000 Delivered-To: apmail-struts-commits-archive@struts.apache.org Received: (qmail 61934 invoked by uid 500); 2 Dec 2008 06:42:25 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 61920 invoked by uid 99); 2 Dec 2008 06:42:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Dec 2008 22:42:25 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Dec 2008 06:41:06 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 631B52388892; Mon, 1 Dec 2008 22:41:53 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r722386 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Date: Tue, 02 Dec 2008 06:41:53 -0000 To: commits@struts.apache.org From: wesw@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081202064153.631B52388892@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: wesw Date: Mon Dec 1 22:41:52 2008 New Revision: 722386 URL: http://svn.apache.org/viewvc?rev=722386&view=rev Log: incorporating Concurrency API. Per WW-2880, thanks for the patch Mathias Bogaert Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=722386&r1=722385&r2=722386&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Mon Dec 1 22:41:52 2008 @@ -31,6 +31,7 @@ import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; import javax.servlet.ServletContext; import javax.servlet.ServletException; @@ -105,7 +106,7 @@ * Store list of DispatcherListeners. */ private static List dispatcherListeners = - new ArrayList(); + new CopyOnWriteArrayList(); /** * Store ConfigurationManager instance, set on init. @@ -169,7 +170,7 @@ * * @param listener The listener to add */ - public static synchronized void addDispatcherListener(DispatcherListener listener) { + public static void addDispatcherListener(DispatcherListener listener) { dispatcherListeners.add(listener); } @@ -178,7 +179,7 @@ * * @param listener The listener */ - public static synchronized void removeDispatcherListener(DispatcherListener listener) { + public static void removeDispatcherListener(DispatcherListener listener) { dispatcherListeners.remove(listener); } @@ -264,11 +265,9 @@ instance.set(null); // clean up DispatcherListeners - synchronized(Dispatcher.class) { - if (dispatcherListeners.size() > 0) { - for (DispatcherListener l : dispatcherListeners) { - l.dispatcherDestroyed(this); - } + if (!dispatcherListeners.isEmpty()) { + for (DispatcherListener l : dispatcherListeners) { + l.dispatcherDestroyed(this); } } @@ -382,15 +381,6 @@ paramsWorkaroundEnabled = "true".equals(container.getInstance(String.class, StrutsConstants.STRUTS_DISPATCHER_PARAMETERSWORKAROUND)); } - - synchronized(Dispatcher.class) { - if (dispatcherListeners.size() > 0) { - for (DispatcherListener l : dispatcherListeners) { - l.dispatcherInitialized(this); - } - } - } - } /** @@ -415,6 +405,11 @@ init_CheckConfigurationReloading(container); init_CheckWebLogicWorkaround(container); + if (!dispatcherListeners.isEmpty()) { + for (DispatcherListener l : dispatcherListeners) { + l.dispatcherInitialized(this); + } + } } /**