jdk/src/java.desktop/share/classes/javax/swing/Timer.java
changeset 26037 508779ce6619
parent 26001 991e1be0b235
parent 25859 3317bb8137f4
child 31164 a61c96d50ddd
--- a/jdk/src/java.desktop/share/classes/javax/swing/Timer.java	Mon Aug 18 14:03:21 2014 +0100
+++ b/jdk/src/java.desktop/share/classes/javax/swing/Timer.java	Tue Aug 19 10:32:16 2014 -0700
@@ -401,14 +401,15 @@
      * @see #setInitialDelay
      */
     public void setDelay(int delay) {
-        if (delay < 0) {
-            throw new IllegalArgumentException("Invalid delay: " + delay);
-        }
-        else {
+        checkDelay(delay, "Invalid delay: ");
             this.delay = delay;
         }
+
+    private static void checkDelay(int delay, String message) {
+        if (delay < 0) {
+            throw new IllegalArgumentException(message + delay);
     }
-
+    }
 
     /**
      * Returns the delay, in milliseconds,
@@ -435,14 +436,9 @@
      * @see #setDelay
      */
     public void setInitialDelay(int initialDelay) {
-        if (initialDelay < 0) {
-            throw new IllegalArgumentException("Invalid initial delay: " +
-                                               initialDelay);
-        }
-        else {
+        checkDelay(initialDelay, "Invalid initial delay: ");
             this.initialDelay = initialDelay;
         }
-    }
 
 
     /**
@@ -638,7 +634,26 @@
         throws ClassNotFoundException, IOException
     {
         this.acc = AccessController.getContext();
-        in.defaultReadObject();
+        ObjectInputStream.GetField f = in.readFields();
+
+        EventListenerList newListenerList = (EventListenerList)
+                f.get("listenerList", null);
+        if (newListenerList == null) {
+            throw new InvalidObjectException("Null listenerList");
+        }
+        listenerList = newListenerList;
+
+        int newInitialDelay = f.get("initialDelay", 0);
+        checkDelay(newInitialDelay, "Invalid initial delay: ");
+        initialDelay = newInitialDelay;
+
+        int newDelay = f.get("delay", 0);
+        checkDelay(newDelay, "Invalid delay: ");
+        delay = newDelay;
+
+        repeats = f.get("repeats", false);
+        coalesce = f.get("coalesce", false);
+        actionCommand = (String) f.get("actionCommand", null);
     }
 
     /*