--- jsr166/src/test/tck/JSR166TestCase.java 2011/05/29 14:18:52 1.85 +++ jsr166/src/test/tck/JSR166TestCase.java 2011/05/30 22:53:21 1.87 @@ -1126,15 +1126,17 @@ public class JSR166TestCase extends Test } /** - * A CyclicBarrier that fails with AssertionFailedErrors instead - * of throwing checked exceptions. + * A CyclicBarrier that uses timed await and fails with + * AssertionFailedErrors instead of throwing checked exceptions. */ public class CheckedBarrier extends CyclicBarrier { public CheckedBarrier(int parties) { super(parties); } public int await() { try { - return super.await(); + return super.await(2 * LONG_DELAY_MS, MILLISECONDS); + } catch (TimeoutException e) { + throw new AssertionFailedError("timed out"); } catch (Exception e) { AssertionFailedError afe = new AssertionFailedError("Unexpected exception: " + e); @@ -1179,10 +1181,11 @@ public class JSR166TestCase extends Test oos.writeObject(o); oos.flush(); oos.close(); - ByteArrayInputStream bin = - new ByteArrayInputStream(bos.toByteArray()); - ObjectInputStream ois = new ObjectInputStream(bin); - return (T) ois.readObject(); + ObjectInputStream ois = new ObjectInputStream + (new ByteArrayInputStream(bos.toByteArray())); + T clone = (T) ois.readObject(); + assertSame(o.getClass(), clone.getClass()); + return clone; } catch (Throwable t) { threadUnexpectedException(t); return null;