[cvs] / jsr166 / src / test / tck / TimeUnitTest.java Repository:
ViewVC logotype

Diff of /jsr166/src/test/tck/TimeUnitTest.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10, Mon Nov 2 20:28:32 2009 UTC revision 1.14, Sat Nov 21 02:07:27 2009 UTC
# Line 337  Line 337 
337       *  Timed wait without holding lock throws       *  Timed wait without holding lock throws
338       *  IllegalMonitorStateException       *  IllegalMonitorStateException
339       */       */
340      public void testTimedWait_IllegalMonitorException() {      public void testTimedWait_IllegalMonitorException() throws Exception {
341          //created a new thread with anonymous runnable          Thread t = new Thread(new CheckedRunnable() {
342                public void realRun() throws InterruptedException {
         Thread t = new Thread(new Runnable() {  
                 public void run() {  
343                      Object o = new Object();                      Object o = new Object();
344                      TimeUnit tu = TimeUnit.MILLISECONDS;                      TimeUnit tu = TimeUnit.MILLISECONDS;
345                      try {                      try {
346                          tu.timedWait(o,LONG_DELAY_MS);                          tu.timedWait(o,LONG_DELAY_MS);
347                          threadShouldThrow();                          threadShouldThrow();
348                      }                  } catch (IllegalMonitorStateException success) {}}});
                     catch (InterruptedException ie) {  
                         threadUnexpectedException();  
                     }  
                     catch(IllegalMonitorStateException success) {  
                     }  
349    
                 }  
             });  
350          t.start();          t.start();
         try {  
351              Thread.sleep(SHORT_DELAY_MS);              Thread.sleep(SHORT_DELAY_MS);
352              t.interrupt();              t.interrupt();
353              t.join();              t.join();
         } catch(Exception e) {  
             unexpectedException();  
         }  
354      }      }
355    
356      /**      /**
357       * timedWait throws InterruptedException when interrupted       * timedWait throws InterruptedException when interrupted
358       */       */
359      public void testTimedWait() {      public void testTimedWait() throws InterruptedException {
360          Thread t = new Thread(new Runnable() {          Thread t = new Thread(new CheckedInterruptedRunnable() {
361                  public void run() {              public void realRun() throws InterruptedException {
362                      Object o = new Object();                      Object o = new Object();
363    
364                      TimeUnit tu = TimeUnit.MILLISECONDS;                      TimeUnit tu = TimeUnit.MILLISECONDS;
                     try {  
365                          synchronized(o) {                          synchronized(o) {
366                              tu.timedWait(o,MEDIUM_DELAY_MS);                              tu.timedWait(o,MEDIUM_DELAY_MS);
367                          }                          }
368                          threadShouldThrow();              }});
                     }  
                     catch(InterruptedException success) {}  
                     catch(IllegalMonitorStateException failure) {  
                         threadUnexpectedException();  
                     }  
                 }  
             });  
369          t.start();          t.start();
         try {  
370              Thread.sleep(SHORT_DELAY_MS);              Thread.sleep(SHORT_DELAY_MS);
371              t.interrupt();              t.interrupt();
372              t.join();              t.join();
         } catch(Exception e) {  
             unexpectedException();  
         }  
373      }      }
374    
375    
376      /**      /**
377       * timedJoin throws InterruptedException when interrupted       * timedJoin throws InterruptedException when interrupted
378       */       */
379      public void testTimedJoin() {      public void testTimedJoin() throws InterruptedException {
380          Thread t = new Thread(new Runnable() {          final Thread s = new Thread(new CheckedInterruptedRunnable() {
381                  public void run() {              public void realRun() throws InterruptedException {
                     TimeUnit tu = TimeUnit.MILLISECONDS;  
                     try {  
                         Thread s = new Thread(new Runnable() {  
                                 public void run() {  
                                     try {  
382                                          Thread.sleep(MEDIUM_DELAY_MS);                                          Thread.sleep(MEDIUM_DELAY_MS);
383                                      } catch(InterruptedException success){}              }});
384                                  }          final Thread t = new Thread(new CheckedInterruptedRunnable() {
385                              });              public void realRun() throws InterruptedException {
386                          s.start();                  TimeUnit tu = TimeUnit.MILLISECONDS;
387                          tu.timedJoin(s,MEDIUM_DELAY_MS);                          tu.timedJoin(s,MEDIUM_DELAY_MS);
388                          threadShouldThrow();              }});;
389                      }          s.start();
                     catch(Exception e) {}  
                 }  
             });  
390          t.start();          t.start();
         try {  
391              Thread.sleep(SHORT_DELAY_MS);              Thread.sleep(SHORT_DELAY_MS);
392              t.interrupt();              t.interrupt();
393              t.join();              t.join();
394          } catch(Exception e) {          s.interrupt();
395              unexpectedException();          s.join();
         }  
396      }      }
397    
398      /**      /**
399       *  timedSleep throws InterruptedException when interrupted       *  timedSleep throws InterruptedException when interrupted
400       */       */
401      public void testTimedSleep() {      public void testTimedSleep() throws InterruptedException {
402          //created a new thread with anonymous runnable          Thread t = new Thread(new CheckedInterruptedRunnable() {
403                public void realRun() throws InterruptedException {
         Thread t = new Thread(new Runnable() {  
                 public void run() {  
404                      TimeUnit tu = TimeUnit.MILLISECONDS;                      TimeUnit tu = TimeUnit.MILLISECONDS;
                     try {  
405                          tu.sleep(MEDIUM_DELAY_MS);                          tu.sleep(MEDIUM_DELAY_MS);
406                          threadShouldThrow();              }});
407                      }  
                     catch(InterruptedException success) {}  
                 }  
             });  
408          t.start();          t.start();
         try {  
409              Thread.sleep(SHORT_DELAY_MS);              Thread.sleep(SHORT_DELAY_MS);
410              t.interrupt();              t.interrupt();
411              t.join();              t.join();
         } catch(Exception e) {  
             unexpectedException();  
         }  
412      }      }
413    
414      /**      /**
415       * a deserialized serialized unit is equal       * a deserialized serialized unit is the same instance
416       */       */
417      public void testSerialization() {      public void testSerialization() throws Exception {
418          TimeUnit q = TimeUnit.MILLISECONDS;          TimeUnit q = TimeUnit.MILLISECONDS;
419    
         try {  
420              ByteArrayOutputStream bout = new ByteArrayOutputStream(10000);              ByteArrayOutputStream bout = new ByteArrayOutputStream(10000);
421              ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout));              ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout));
422              out.writeObject(q);              out.writeObject(q);
# Line 471  Line 425 
425              ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());              ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
426              ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));              ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));
427              TimeUnit r = (TimeUnit)in.readObject();              TimeUnit r = (TimeUnit)in.readObject();
428            assertSame(q, r);
             assertEquals(q.toString(), r.toString());  
         } catch(Exception e){  
             e.printStackTrace();  
             unexpectedException();  
         }  
429      }      }
430    
431  }  }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.14

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8