xjava.lang

Class IJCE_ClassLoaderDepth


public class IJCE_ClassLoaderDepth
extends java.lang.Object

This class is a gross hack. It allows IJCE to obtain the current class loader depth (the number of stack frames after the last method in this thread that was part of a class loaded by a ClassLoader).

Since ClassLoader.classLoaderDepth() is protected, and since the JDK does not allow creating a security manager after one has already been installed, this requires having code in the java.lang package.

Copyright © 1995-1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.2 $

Author:
David Hopwood

Since:
IJCE 1.0.1

Method Summary

static int
classLoaderDepth()
Gets the current classLoaderDepth (assuming there is a security manager installed).

Method Details

classLoaderDepth

public static int classLoaderDepth()
Gets the current classLoaderDepth (assuming there is a security manager installed). This will be 1 if this method was called directly by a class with a ClassLoader, 2 if there is one intervening stack frame, etc.

If there is no ClassLoader in the call stack of the current thread, -1 is returned. If there is no security manager installed, -2 is returned.

This should only be used to implement higher-level security primitives; never directly to make security decisions.