ha, I wondered why I got weird conflicts.  Thought my
eols got screwed up, didn't know Peter was modifying
at the same time!  :)

-Matt

--- [EMAIL PROTECTED] wrote:

> Author: mbenson
> Date: Mon Oct 24 08:18:52 2005
> New Revision: 328083
> 
> URL:
> http://svn.apache.org/viewcvs?rev=328083&view=rev
> Log:
> Bugzilla 37184; submitted by Frank Harnack.  Also
> replaced extra listener Vector instances by
> synchronization for ConcurrentModificationException
> guards.
> 
> Modified:
>    
>
ant/core/trunk/src/main/org/apache/tools/ant/Project.java
> 
> Modified:
>
ant/core/trunk/src/main/org/apache/tools/ant/Project.java
> URL:
>
http://svn.apache.org/viewcvs/ant/core/trunk/src/main/org/apache/tools/ant/Project.java?rev=328083&r1=328082&r2=328083&view=diff
>
==============================================================================
> ---
>
ant/core/trunk/src/main/org/apache/tools/ant/Project.java
> (original)
> +++
>
ant/core/trunk/src/main/org/apache/tools/ant/Project.java
> Mon Oct 24 08:18:52 2005
> @@ -324,18 +324,12 @@
>       * be notified of build events for this
> project.
>       *
>       * @param listener The listener to add to the
> list.
> -     *                 Must not be
> <code>null</code>.
> +     *                 Ignored if
> <code>null</code>.
>       */
>      public synchronized void
> addBuildListener(BuildListener listener) {
> -        // If the listeners already has this
> listener, do nothing
> -        if (listeners.contains(listener)) {
> -            return;
> +        if (!(listener == null ||
> listeners.contains(listener))) {
> +            listeners.add(listener);
>          }
> -        // create a new Vector to avoid
> ConcurrentModificationExc when
> -        // the listeners get added/removed while we
> are in fire
> -        Vector newListeners = getBuildListeners();
> -        newListeners.addElement(listener);
> -        listeners = newListeners;
>      }
>  
>      /**
> @@ -346,11 +340,7 @@
>       *                 Should not be
> <code>null</code>.
>       */
>      public synchronized void
> removeBuildListener(BuildListener listener) {
> -        // create a new Vector to avoid
> ConcurrentModificationExc when
> -        // the listeners get added/removed while we
> are in fire
> -        Vector newListeners = getBuildListeners();
> -        newListeners.removeElement(listener);
> -        listeners = newListeners;
> +        listeners.remove(listener);
>      }
>  
>      /**
> @@ -1847,7 +1837,7 @@
>       * Send a &quot;build started&quot; event
>       * to the build listeners for this project.
>       */
> -    public void fireBuildStarted() {
> +    public synchronized void fireBuildStarted() {
>          BuildEvent event = new BuildEvent(this);
>          Iterator iter = listeners.iterator();
>          while (iter.hasNext()) {
> @@ -1863,7 +1853,7 @@
>       *                  failure. May be
> <code>null</code>, indicating
>       *                  a successful build.
>       */
> -    public void fireBuildFinished(Throwable
> exception) {
> +    public synchronized void
> fireBuildFinished(Throwable exception) {
>          BuildEvent event = new BuildEvent(this);
>          event.setException(exception);
>          Iterator iter = listeners.iterator();
> @@ -1879,7 +1869,7 @@
>       *
>       * @since Ant 1.6.2
>       */
> -    public void fireSubBuildStarted() {
> +    public synchronized void fireSubBuildStarted()
> {
>          BuildEvent event = new BuildEvent(this);
>          Iterator iter = listeners.iterator();
>          while (iter.hasNext()) {
> @@ -1899,7 +1889,7 @@
>       *
>       * @since Ant 1.6.2
>       */
> -    public void fireSubBuildFinished(Throwable
> exception) {
> +    public synchronized void
> fireSubBuildFinished(Throwable exception) {
>          BuildEvent event = new BuildEvent(this);
>          event.setException(exception);
>          Iterator iter = listeners.iterator();
> @@ -1918,7 +1908,7 @@
>       * @param target The target which is starting
> to build.
>       *               Must not be <code>null</code>.
>       */
> -    protected void fireTargetStarted(Target target)
> {
> +    protected synchronized void
> fireTargetStarted(Target target) {
>          BuildEvent event = new BuildEvent(target);
>          Iterator iter = listeners.iterator();
>          while (iter.hasNext()) {
> @@ -1937,7 +1927,8 @@
>       *                  failure. May be
> <code>null</code>, indicating
>       *                  a successful build.
>       */
> -    protected void fireTargetFinished(Target
> target, Throwable exception) {
> +    protected synchronized void
> fireTargetFinished(Target target,
> +                                                  
> Throwable exception) {
>          BuildEvent event = new BuildEvent(target);
>          event.setException(exception);
>          Iterator iter = listeners.iterator();
> @@ -1954,7 +1945,7 @@
>       * @param task The target which is starting to
> execute.
>       *               Must not be <code>null</code>.
>       */
> -    protected void fireTaskStarted(Task task) {
> +    protected synchronized void
> fireTaskStarted(Task task) {
>          // register this as the current task on the
> current thread.
>          registerThreadTask(Thread.currentThread(),
> task);
>          BuildEvent event = new BuildEvent(task);
> @@ -1975,7 +1966,7 @@
>       *                  failure. May be
> <code>null</code>, indicating
>       *                  a successful build.
>       */
> -    protected void fireTaskFinished(Task task,
> Throwable exception) {
> +    protected synchronized void
> fireTaskFinished(Task task, Throwable exception) {
>          registerThreadTask(Thread.currentThread(),
> null);
>          System.out.flush();
>          System.err.flush();
> @@ -1999,8 +1990,9 @@
>       * @param message  The message to send. Should
> not be <code>null</code>.
>       * @param priority The priority of the message.
>       */
> -    private void fireMessageLoggedEvent(BuildEvent
> event, String message,
> -                                        int
> priority) {
> +    private synchronized void
> fireMessageLoggedEvent(BuildEvent event,
> +                                                   
>  String message,
> +                                                   
>  int priority) {
>  
>          if (message.endsWith(StringUtils.LINE_SEP))
> {
>              int endIndex = message.length() -
> StringUtils.LINE_SEP.length();
> @@ -2047,8 +2039,8 @@
>       * @param message  The message to send. Should
> not be <code>null</code>.
>       * @param priority The priority of the message.
>       */
> -    protected void fireMessageLogged(Project
> project, String message,
> -                                     int priority)
> {
> +    protected synchronized void
> fireMessageLogged(Project project, String message,
> +                                                 
> int 
=== message truncated ===



        
                
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to