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

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

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

revision 1.22, Tue Dec 1 22:51:44 2009 UTC revision 1.23, Tue Jan 5 02:08:37 2010 UTC
# Line 81  Line 81 
81    
82    
83      /**      /**
84       * A submitted privileged action to completion       * A submitted privileged action runs to completion
85       */       */
86      public void testSubmitPrivilegedAction() throws Exception {      public void testSubmitPrivilegedAction() throws Exception {
87          Policy savedPolicy = null;          Runnable r = new CheckedRunnable() {
88          try {              public void realRun() throws Exception {
             savedPolicy = Policy.getPolicy();  
             AdjustablePolicy policy = new AdjustablePolicy();  
             policy.addPermission(new RuntimePermission("getContextClassLoader"));  
             policy.addPermission(new RuntimePermission("setContextClassLoader"));  
             Policy.setPolicy(policy);  
         } catch (AccessControlException ok) {  
             return;  
         }  
         try {  
89              ExecutorService e = new DirectExecutorService();              ExecutorService e = new DirectExecutorService();
90              Future future = e.submit(Executors.callable(new PrivilegedAction() {              Future future = e.submit(Executors.callable(new PrivilegedAction() {
91                      public Object run() {                      public Object run() {
92                          return TEST_STRING;                          return TEST_STRING;
93                      }}));                      }}));
94    
95              Object result = future.get();                  assertSame(TEST_STRING, future.get());
96              assertSame(TEST_STRING, result);              }};
97          }  
98          finally {          runWithPermissions(r,
99              try {                             new RuntimePermission("getClassLoader"),
100                  Policy.setPolicy(savedPolicy);                             new RuntimePermission("setContextClassLoader"),
101              } catch (AccessControlException ok) {                             new RuntimePermission("modifyThread"));
                 return;  
             }  
         }  
102      }      }
103    
104      /**      /**
105       * A submitted a privileged exception action runs to completion       * A submitted privileged exception action runs to completion
106       */       */
107      public void testSubmitPrivilegedExceptionAction() throws Exception {      public void testSubmitPrivilegedExceptionAction() throws Exception {
108          Policy savedPolicy = null;          Runnable r = new CheckedRunnable() {
109          try {              public void realRun() throws Exception {
             savedPolicy = Policy.getPolicy();  
             AdjustablePolicy policy = new AdjustablePolicy();  
             policy.addPermission(new RuntimePermission("getContextClassLoader"));  
             policy.addPermission(new RuntimePermission("setContextClassLoader"));  
             Policy.setPolicy(policy);  
         } catch (AccessControlException ok) {  
             return;  
         }  
   
         try {  
110              ExecutorService e = new DirectExecutorService();              ExecutorService e = new DirectExecutorService();
111              Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {              Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {
112                      public Object run() {                      public Object run() {
113                          return TEST_STRING;                          return TEST_STRING;
114                      }}));                      }}));
115    
116              Object result = future.get();                  assertSame(TEST_STRING, future.get());
117              assertSame(TEST_STRING, result);              }};
118          }  
119          finally {          runWithPermissions(r);
             Policy.setPolicy(savedPolicy);  
         }  
120      }      }
121    
122      /**      /**
123       * A submitted failed privileged exception action reports exception       * A submitted failed privileged exception action reports exception
124       */       */
125      public void testSubmitFailedPrivilegedExceptionAction() throws Exception {      public void testSubmitFailedPrivilegedExceptionAction() throws Exception {
126          Policy savedPolicy = null;          Runnable r = new CheckedRunnable() {
127          try {              public void realRun() throws Exception {
             savedPolicy = Policy.getPolicy();  
             AdjustablePolicy policy = new AdjustablePolicy();  
             policy.addPermission(new RuntimePermission("getContextClassLoader"));  
             policy.addPermission(new RuntimePermission("setContextClassLoader"));  
             Policy.setPolicy(policy);  
         } catch (AccessControlException ok) {  
             return;  
         }  
   
         try {  
128              ExecutorService e = new DirectExecutorService();              ExecutorService e = new DirectExecutorService();
129              Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {              Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {
130                      public Object run() throws Exception {                      public Object run() throws Exception {
131                          throw new IndexOutOfBoundsException();                          throw new IndexOutOfBoundsException();
132                      }}));                      }}));
133    
134                    try {
135              future.get();              future.get();
136              shouldThrow();              shouldThrow();
137          } catch (ExecutionException success) {          } catch (ExecutionException success) {
138              assertTrue(success.getCause() instanceof IndexOutOfBoundsException);              assertTrue(success.getCause() instanceof IndexOutOfBoundsException);
139          }                  }}};
140          finally {  
141              Policy.setPolicy(savedPolicy);          runWithPermissions(r);
         }  
142      }      }
143    
144      /**      /**

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8