--- jsr166/src/test/tck/AtomicLongFieldUpdaterTest.java 2015/11/08 15:34:01 1.30 +++ jsr166/src/test/tck/AtomicLongFieldUpdaterTest.java 2017/09/20 00:59:17 1.34 @@ -24,47 +24,6 @@ public class AtomicLongFieldUpdaterTest return new TestSuite(AtomicLongFieldUpdaterTest.class); } - // for testing subclass access - static class AtomicLongFieldUpdaterTestSubclass extends AtomicLongFieldUpdaterTest { - public void checkPrivateAccess() { - try { - AtomicLongFieldUpdater a = - AtomicLongFieldUpdater.newUpdater - (AtomicLongFieldUpdaterTest.class, "privateField"); - shouldThrow(); - } catch (RuntimeException success) { - assertNotNull(success.getCause()); - } - } - - public void checkCompareAndSetProtectedSub() { - AtomicLongFieldUpdater a; - a = updaterFor("protectedField"); - protectedField = 1; - assertTrue(a.compareAndSet(this, 1, 2)); - assertTrue(a.compareAndSet(this, 2, -4)); - assertEquals(-4, a.get(this)); - assertFalse(a.compareAndSet(this, -5, 7)); - assertEquals(-4, a.get(this)); - assertTrue(a.compareAndSet(this, -4, 7)); - assertEquals(7, a.get(this)); - } - } - - static class UnrelatedClass { - public void checkPrivateAccess() { - Exception ex = null; - try { - AtomicLongFieldUpdater a = - AtomicLongFieldUpdater.newUpdater - (AtomicLongFieldUpdaterTest.class, "x"); - } catch (RuntimeException rex) { - ex = rex; - } - if (ex != null) throw new Error(); - } - } - AtomicLongFieldUpdater updaterFor(String fieldName) { return AtomicLongFieldUpdater.newUpdater (AtomicLongFieldUpdaterTest.class, fieldName); @@ -106,17 +65,17 @@ public class AtomicLongFieldUpdaterTest * construction using private field from subclass throws RuntimeException */ public void testPrivateFieldInSubclass() { - AtomicLongFieldUpdaterTestSubclass s = - new AtomicLongFieldUpdaterTestSubclass(); - s.checkPrivateAccess(); + new NonNestmates.AtomicLongFieldUpdaterTestSubclass() + .checkPrivateAccess(); } /** - * construction from unrelated class throws RuntimeException + * construction from unrelated class; package access is allowed, + * private access is not */ public void testUnrelatedClassAccess() { - UnrelatedClass s = new UnrelatedClass(); - s.checkPrivateAccess(); + new NonNestmates().checkPackageAccess(this); + new NonNestmates().checkPrivateAccess(this); } /** @@ -185,9 +144,8 @@ public class AtomicLongFieldUpdaterTest * equal to expected else fails */ public void testCompareAndSetProtectedInSubclass() { - AtomicLongFieldUpdaterTestSubclass s = - new AtomicLongFieldUpdaterTestSubclass(); - s.checkCompareAndSetProtectedSub(); + new NonNestmates.AtomicLongFieldUpdaterTestSubclass() + .checkCompareAndSetProtectedSub(); } /**