63 && desc.equals(transformDescriptor.getMethod().getSignature())) {
64 return new JFRMethodAdvisor(transformDescriptor, Opcodes.ASM5, mv, access, name, desc);
65 }
66 return mv;
67 }
68
69 @Override
70 public void visitEnd() {
71 try {
72 Class<?> c = generateEventClass();
73 Agent.getLogger().log(Level.FINE, "Generated " + c);
74 } catch (Throwable t) {
75 Agent.getLogger().log(Level.SEVERE, "Failed to generate event class for " + transformDescriptor.toString(), //$NON-NLS-1$
76 t);
77 }
78 super.visitEnd();
79 }
80
81 private Class<?> generateEventClass() throws Exception {
82 byte[] eventClass = JFREventClassGenerator.generateEventClass(transformDescriptor);
83 return TypeUtils.getUnsafe().defineClass(transformDescriptor.getEventClassName(), eventClass, 0,
84 eventClass.length, definingClassLoader, protectionDomain);
85 }
86
87 }
|
63 && desc.equals(transformDescriptor.getMethod().getSignature())) {
64 return new JFRMethodAdvisor(transformDescriptor, Opcodes.ASM5, mv, access, name, desc);
65 }
66 return mv;
67 }
68
69 @Override
70 public void visitEnd() {
71 try {
72 Class<?> c = generateEventClass();
73 Agent.getLogger().log(Level.FINE, "Generated " + c);
74 } catch (Throwable t) {
75 Agent.getLogger().log(Level.SEVERE, "Failed to generate event class for " + transformDescriptor.toString(), //$NON-NLS-1$
76 t);
77 }
78 super.visitEnd();
79 }
80
81 private Class<?> generateEventClass() throws Exception {
82 byte[] eventClass = JFREventClassGenerator.generateEventClass(transformDescriptor);
83 return TypeUtils.defineClass(transformDescriptor.getEventClassName(), eventClass, 0,
84 eventClass.length, definingClassLoader, protectionDomain);
85 }
86
87 }
|