Search in sources :

Example 1 with InnerClassLambdaMetafactoryTransformer

use of com.navercorp.pinpoint.profiler.instrument.transformer.InnerClassLambdaMetafactoryTransformer in project pinpoint by naver.

the class LambdaTransformBootloader method retransform.

private void retransform(Instrumentation instrumentation) {
    final String lambdaMetaFactoryName = "java.lang.invoke.InnerClassLambdaMetafactory";
    try {
        final Class<?> lamdbaFactoryClazz = Class.forName(lambdaMetaFactoryName, false, null);
        logger.info("retransformClasses:{}", lamdbaFactoryClazz);
        final ClassFileTransformer classFileTransfomrer = new InnerClassLambdaMetafactoryTransformer();
        instrumentation.addTransformer(classFileTransfomrer, true);
        try {
            instrumentation.retransformClasses(lamdbaFactoryClazz);
        } finally {
            instrumentation.removeTransformer(classFileTransfomrer);
        }
    } catch (Exception e) {
        logger.warn("retransform fail class:{}", lambdaMetaFactoryName, e);
    }
}
Also used : ClassFileTransformer(java.lang.instrument.ClassFileTransformer) InnerClassLambdaMetafactoryTransformer(com.navercorp.pinpoint.profiler.instrument.transformer.InnerClassLambdaMetafactoryTransformer)

Aggregations

InnerClassLambdaMetafactoryTransformer (com.navercorp.pinpoint.profiler.instrument.transformer.InnerClassLambdaMetafactoryTransformer)1 ClassFileTransformer (java.lang.instrument.ClassFileTransformer)1