Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/security/PrivilegedRunner.java')
-rw-r--r--bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/security/PrivilegedRunner.java173
1 files changed, 0 insertions, 173 deletions
diff --git a/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/security/PrivilegedRunner.java b/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/security/PrivilegedRunner.java
deleted file mode 100644
index 30d998db7..000000000
--- a/bundles/org.eclipse.equinox.util/src/org/eclipse/equinox/internal/util/security/PrivilegedRunner.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1997-2007 by ProSyst Software GmbH
- * http://www.prosyst.com
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * ProSyst Software GmbH - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.util.security;
-
-import java.security.*;
-import org.eclipse.equinox.internal.util.pool.ObjectCreator;
-import org.eclipse.equinox.internal.util.pool.ObjectPool;
-
-/**
- * A simple wrapper for executing privileged actions.
- *
- * @author Valentin Valchev
- * @author Pavlin Dobrev
- * @version 1.0
- */
-
-public final class PrivilegedRunner implements ObjectCreator {
-
- private static ObjectPool POOL;
-
- static {
- try {
- POOL = new ObjectPool(new PrivilegedRunner(), 5, 10);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /* prevent instantiations */
- private PrivilegedRunner() {
- }
-
- /**
- * Same as the longer doPrivileged method, but fills in the first parameter
- * only. All other parameters are set to <code>null</code>.
- *
- * @param context
- * the access context
- * @param dispatcher
- * the dispatcher which should be called
- * @param type
- * the type of the action - used in the dispatcher
- * @param arg1
- * a parameter received by the dispatcher
- * @see #doPrivileged(Object, PrivilegedDispatcher, int, Object)
- * @return the object returned from the execution
- * @throws Exception
- * if the dispatcher fails
- */
- public static final Object doPrivileged(Object context, PrivilegedDispatcher dispatcher, int type, Object arg1) throws Exception {
- return doPrivileged(context, dispatcher, type, arg1, null, null, null);
- }
-
- /**
- * Performs a privileged action. The method calls the dispatcher inside the
- * privileged call passing it the same parameters that were passed to this
- * method.
- *
- * @param context
- * the access context
- * @param dispatcher
- * the dispatcher which should be called
- * @param type
- * the type of the action - used in the dispatcher
- * @param arg1
- * a parameter received by the dispatcher
- * @param arg2
- * a parameter received by the dispatcher
- * @param arg3
- * a parameter received by the dispatcher
- * @param arg4
- * a parameter received by the dispatcher
- * @return the object returned from the execution
- * @throws Exception
- * if the dispatcher fails
- */
- public static final Object doPrivileged(Object context, PrivilegedDispatcher dispatcher, int type, Object arg1, Object arg2, Object arg3, Object arg4) throws Exception {
- /* init runner */
- PA runner = (PA) POOL.getObject();
- runner.dispatcher = dispatcher;
- runner.type = type;
- runner.arg1 = arg1;
- runner.arg2 = arg2;
- runner.arg3 = arg3;
- runner.arg4 = arg4;
-
- try {
- if (System.getSecurityManager() != null) {
- /*
- * if security manager is set - then privileged execution is
- * started
- */
- return (context != null)
- //
- ? AccessController.doPrivileged(runner, (AccessControlContext) context)
- : AccessController.doPrivileged(runner);
- }
- /* if no security manager is set - simply run the action */
- return runner.run();
- } catch (PrivilegedActionException e) {
- throw e.getException();
- } finally {
- runner.recycle();
- POOL.releaseObject(runner);
- }
- }
-
- /**
- * @see org.eclipse.equinox.internal.util.pool.ObjectCreator#getInstance()
- */
- public Object getInstance() throws Exception {
- return new PA();
- }
-
- /**
- * This dispatcher is the handler that is called within the privileged call.
- * It should dispatch and perform the requested actions depending on the
- * action type and using the given job parameters.
- *
- * @author Valentin Valchev
- * @version $Revision: 1.2 $
- */
- public static interface PrivilegedDispatcher {
-
- /**
- * @param type
- * the type of the action
- * @param arg1
- * parameter 1 - depends on the action type
- * @param arg2
- * parameter 2 - depends on the action type
- * @param arg3
- * parameter 3 - depends on the action type
- * @param arg4
- * parameter 4 - depends on the action type
- * @return an object which should be returned from the
- * PrivilegedAction.run() method
- * @throws Exception
- * on error
- */
- Object dispatchPrivileged(int type, Object arg1, Object arg2, Object arg3, Object arg4) throws Exception;
- }
-
- static class PA implements PrivilegedExceptionAction {
-
- int type;
- Object arg1, arg2, arg3, arg4;
- PrivilegedDispatcher dispatcher;
-
- void recycle() {
- dispatcher = null;
- type = -1;
- arg1 = arg2 = arg3 = arg4 = null;
- }
-
- /**
- * @see java.security.PrivilegedExceptionAction#run()
- */
- public Object run() throws Exception {
- return dispatcher.dispatchPrivileged(type, arg1, arg2, arg3, arg4);
- }
- }
-
-}

Back to the top