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

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

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

revision 1.30, Sun Nov 8 15:34:00 2015 UTC revision 1.31, Mon Nov 9 18:42:41 2015 UTC
# Line 38  Line 38 
38          }          }
39    
40          public void checkCompareAndSetProtectedSub() {          public void checkCompareAndSetProtectedSub() {
41              AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a;              AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
42              a = updaterFor("protectedField");                  AtomicIntegerFieldUpdater.newUpdater
43              protectedField = 1;                  (AtomicIntegerFieldUpdaterTest.class, "protectedField");
44                this.protectedField = 1;
45              assertTrue(a.compareAndSet(this, 1, 2));              assertTrue(a.compareAndSet(this, 1, 2));
46              assertTrue(a.compareAndSet(this, 2, -4));              assertTrue(a.compareAndSet(this, 2, -4));
47              assertEquals(-4, a.get(this));              assertEquals(-4, a.get(this));
# Line 52  Line 53 
53      }      }
54    
55      static class UnrelatedClass {      static class UnrelatedClass {
56          public void checkPrivateAccess() {          public void checkPackageAccess(AtomicIntegerFieldUpdaterTest obj) {
57              Exception ex = null;              obj.x = 72;
             try {  
58                  AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =                  AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
59                      AtomicIntegerFieldUpdater.newUpdater                      AtomicIntegerFieldUpdater.newUpdater
60                      (AtomicIntegerFieldUpdaterTest.class, "x");                      (AtomicIntegerFieldUpdaterTest.class, "x");
61              } catch (RuntimeException rex) {              assertEquals(72, a.get(obj));
62                  ex = rex;              assertTrue(a.compareAndSet(obj, 72, 73));
63                assertEquals(73, a.get(obj));
64            }
65    
66            public void checkPrivateAccess(AtomicIntegerFieldUpdaterTest obj) {
67                try {
68                    AtomicIntegerFieldUpdater<AtomicIntegerFieldUpdaterTest> a =
69                        AtomicIntegerFieldUpdater.newUpdater
70                        (AtomicIntegerFieldUpdaterTest.class, "privateField");
71                    throw new AssertionError("should throw");
72                } catch (RuntimeException success) {
73                    assertNotNull(success.getCause());
74              }              }
             if (ex != null) throw new Error();  
75          }          }
76      }      }
77    
# Line 112  Line 122 
122      }      }
123    
124      /**      /**
125       * construction from unrelated class throws RuntimeException       * construction from unrelated class; package access is allowed,
126         * private access is not
127       */       */
128      public void testUnrelatedClassAccess() {      public void testUnrelatedClassAccess() {
129          UnrelatedClass s = new UnrelatedClass();          new UnrelatedClass().checkPackageAccess(this);
130          s.checkPrivateAccess();          new UnrelatedClass().checkPrivateAccess(this);
131      }      }
132    
133      /**      /**

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8