[jboss-cvs] JBoss Messaging SVN: r3504 - branches/Branch_Stable/src/main/org/jboss/messaging/util.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Dec 14 12:55:14 EST 2007
Author: clebert.suconic at jboss.com
Date: 2007-12-14 12:55:14 -0500 (Fri, 14 Dec 2007)
New Revision: 3504
Modified:
branches/Branch_Stable/src/main/org/jboss/messaging/util/JBMExecutor.java
Log:
Adding Security Blocks on ClassLoader
Modified: branches/Branch_Stable/src/main/org/jboss/messaging/util/JBMExecutor.java
===================================================================
--- branches/Branch_Stable/src/main/org/jboss/messaging/util/JBMExecutor.java 2007-12-14 14:31:53 UTC (rev 3503)
+++ branches/Branch_Stable/src/main/org/jboss/messaging/util/JBMExecutor.java 2007-12-14 17:55:14 UTC (rev 3504)
@@ -22,6 +22,9 @@
package org.jboss.messaging.util;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
import EDU.oswego.cs.dl.util.concurrent.Channel;
@@ -61,29 +64,57 @@
class TCLExecutor implements Runnable
{
- Runnable realExecutor;
- ClassLoader tcl;
+ private Runnable realExecutor;
+ private ClassLoader tcl;
public TCLExecutor(Runnable realExecutor)
{
- tcl = Thread.currentThread().getContextClassLoader();
+ tcl = AccessController.doPrivileged(
+ new PrivilegedAction<ClassLoader>()
+ {
+ public ClassLoader run()
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+ }
+ );
+
this.realExecutor = realExecutor;
}
public void run()
{
- Thread.currentThread().setContextClassLoader(tcl);
+ AccessController.doPrivileged(
+ new PrivilegedAction()
+ {
+ public Object run()
+ {
+ Thread.currentThread().setContextClassLoader(tcl);
+ return null;
+ }
+ }
+ );
try
{
realExecutor.run();
}
finally
{
- Thread.currentThread().setContextClassLoader(JBMExecutor.class.getClassLoader());
+ AccessController.doPrivileged(
+ new PrivilegedAction()
+ {
+ public Object run()
+ {
+ Thread.currentThread().setContextClassLoader(JBMExecutor.class.getClassLoader());
+ return null;
+ }
+ }
+ );
}
}
}
-
+
+
public void execute(Runnable runnable) throws InterruptedException
{
super.execute(new TCLExecutor(runnable));
More information about the jboss-cvs-commits
mailing list