Esempio n. 1
0
 @Override
 public void configurationChanged() {
   if (started.get()) {
     if (configuration.isFilterChanged()) {
       List<ClassInfo> deltas = context.buildDeltaList();
       if (deltas != null && !deltas.isEmpty()) {
         for (ClassInfo classInfo : deltas) {
           if (configuration.isAsyncTransformation()) {
             try {
               blockingQueue.put(classInfo.getOriginalClass());
             } catch (InterruptedException e) {
               Thread.currentThread().interrupt();
               break;
             }
           } else {
             try {
               instrumentation.retransformClasses(new Class[] {classInfo.getOriginalClass()});
             } catch (Throwable e) {
               LOG.error("Could not transform " + classInfo.getClassName(), e);
             }
           }
         }
         if (configuration.isAsyncTransformation() && !blockingQueue.isEmpty()) {
           startTransformThread();
         }
       }
     }
   }
 }