From 642fd3b8cef80878ff37fe8b6a50dae5e163e3b2 Mon Sep 17 00:00:00 2001 From: Peter Reilly Date: Mon, 24 Oct 2005 15:09:47 +0000 Subject: [PATCH] bugzilla 37184: multiple calls to addlistener for introspection helper objects reporter: Frank Harnack git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@328081 13f79535-47bb-0310-9956-ffa450edef68 --- CONTRIBUTORS | 3 ++- WHATSNEW | 3 +++ src/main/org/apache/tools/ant/Project.java | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e7e35b303..8f24b6a7b 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -67,8 +67,9 @@ Erik Hatcher Erik Langenbach Erik Meade Ernst de Haan -Frederic Lavigne Frank Somers +Frank Harnack +Frederic Lavigne Gary S. Weaver Gautam Guliani Gero Vermaas diff --git a/WHATSNEW b/WHATSNEW index fbb41b720..1e4b513c3 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -147,6 +147,9 @@ Fixed bugs: * was crashing with CVS versions >= 1.12.x due to change in the date format. Bugzilla report 30962. +* The same IntrospectionHelper instance was contineously added as a listener + to project. Bugzilla report 37184. + Other changes: -------------- * Fixed references to obsoleted CVS web site. Burzilla Report 36854. diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index 6de28ed91..c406e7b0e 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -327,6 +327,10 @@ public class Project { * Must not be null. */ public synchronized void addBuildListener(BuildListener listener) { + // If the listeners already has this listener, do nothing + if (listeners.contains(listener)) { + return; + } // create a new Vector to avoid ConcurrentModificationExc when // the listeners get added/removed while we are in fire Vector newListeners = getBuildListeners();