< prev index next >

core/org.openjdk.jmc.agent/src/main/java/org/openjdk/jmc/agent/jfr/impl/JFRClassVisitor.java

Print this page




  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 }
< prev index next >