jdave.unfinalizer
Class DelegatingClassFileTransformer
java.lang.Object
jdave.unfinalizer.DelegatingClassFileTransformer
- All Implemented Interfaces:
- java.lang.instrument.ClassFileTransformer
public class DelegatingClassFileTransformer
- extends java.lang.Object
- implements java.lang.instrument.ClassFileTransformer
Delegates classes being loaded to the actual transformer if the classloader
is not null.
This pseudo-magical rule has something to do with avoiding infinite loops
caused by classes being requested for unfinalization during the
unfinalization process itself.
Although the acceptance spec passes without this magic, some real classes,
for example XmlPullParser from wicket cannot be mocked without it.
- Author:
- Tuomas Karkkainen
|
Method Summary |
byte[] |
transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class<?> classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DelegatingClassFileTransformer
public DelegatingClassFileTransformer(ClassVisitorDelegator delegator)
transform
public byte[] transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class<?> classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws java.lang.instrument.IllegalClassFormatException
- Specified by:
transform in interface java.lang.instrument.ClassFileTransformer
- Throws:
java.lang.instrument.IllegalClassFormatException
Copyright ? 2008. All Rights Reserved.