summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/security/7189103.patch
blob: c855299d2ac2a0e830061588b4f291d55ff6885b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# HG changeset patch
# User coffeys
# Date 1345121690 -3600
# Node ID b6a7a661db8a2141ebb2e79ba5739722d1be7bfd
# Parent  a6294da5a21f609b67a0d4d216028dda9f56e689
7189103: Executors needs to maintain state
Reviewed-by: chegar

diff --git a/src/share/classes/java/util/concurrent/Executors.java b/src/share/classes/java/util/concurrent/Executors.java
--- jdk/src/share/classes/java/util/concurrent/Executors.java
+++ jdk/src/share/classes/java/util/concurrent/Executors.java
@@ -530,18 +530,17 @@
                 return AccessController.doPrivileged(
                     new PrivilegedExceptionAction<T>() {
                         public T run() throws Exception {
-                            ClassLoader savedcl = null;
                             Thread t = Thread.currentThread();
-                            try {
-                                ClassLoader cl = t.getContextClassLoader();
-                                if (ccl != cl) {
-                                    t.setContextClassLoader(ccl);
-                                    savedcl = cl;
+                            ClassLoader cl = t.getContextClassLoader();
+                            if (ccl == cl) {
+                                return task.call();
+                            } else {
+                                t.setContextClassLoader(ccl);
+                                try {
+                                    return task.call();
+                                } finally {
+                                    t.setContextClassLoader(cl);
                                 }
-                                return task.call();
-                            } finally {
-                                if (savedcl != null)
-                                    t.setContextClassLoader(savedcl);
                             }
                         }
                     }, acc);