You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by rh...@apache.org on 2016/06/25 17:09:27 UTC

svn commit: r1750214 - /db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java

Author: rhillegas
Date: Sat Jun 25 17:09:26 2016
New Revision: 1750214

URL: http://svn.apache.org/viewvc?rev=1750214&view=rev
Log:
DERBY-6891: Improve the synchronization behavior of DerbyObservable; commit derby-6891-01-ab-synchronizeMethods.diff.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java?rev=1750214&r1=1750213&r2=1750214&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/services/monitor/DerbyObservable.java Sat Jun 25 17:09:26 2016
@@ -21,7 +21,7 @@
 
 package org.apache.derby.iapi.services.monitor;
 
-import java.util.Vector;
+import java.util.ArrayList;
 
 /**
  * <p>
@@ -39,7 +39,7 @@ public class DerbyObservable
     //////////////////////////////////////////////////////////////////////
   
     private boolean _hasChanged = false;
-    private Vector<DerbyObserver> _observers;
+    private ArrayList<DerbyObserver> _observers;
 
     //////////////////////////////////////////////////////////////////////
     //
@@ -48,7 +48,7 @@ public class DerbyObservable
     //////////////////////////////////////////////////////////////////////
   
     /** No-arg constructor */
-    public DerbyObservable() { _observers = new Vector<DerbyObserver>(); }
+    public DerbyObservable() { _observers = new ArrayList<DerbyObserver>(); }
 
     //////////////////////////////////////////////////////////////////////
     //
@@ -63,11 +63,11 @@ public class DerbyObservable
      *
      * @throws IllegalArgumentException If the argument is bad (e.g., null)
      */
-    public void addObserver(DerbyObserver observer)
+    public synchronized void addObserver(DerbyObserver observer)
     {
       if (observer == null) { throw new IllegalArgumentException("Null arguments not allowed."); }
 
-      if (!_observers.contains(observer)) { _observers.addElement(observer); }
+      if (!_observers.contains(observer)) { _observers.add(observer); }
     }
 
     /**
@@ -75,14 +75,14 @@ public class DerbyObservable
      *
      * @return The number of watchers
      */
-    public int countObservers() { return _observers.size(); }
+    public synchronized int countObservers() { return _observers.size(); }
 
     /**
      * Remove a specific observer from the list of watchers. Null is ignored.
      *
      * @param observer The observer to remove.
      */
-    public void deleteObserver(DerbyObserver observer) { _observers.removeElement(observer); }
+    public synchronized void deleteObserver(DerbyObserver observer) { _observers.remove(observer); }
 
     /**
      * This method is equivalent to notifyObservers(null);
@@ -129,6 +129,6 @@ public class DerbyObservable
      * then the notifyObservers() will wake up the observers which are
      * watching this object.
      */
-    protected void setChanged() { _hasChanged = true; }
+    protected synchronized void setChanged() { _hasChanged = true; }
   
 }