alibaba / alibaba/one-java-agent

在 addTransformer 时,不设置 canRetransform 为 true,会有一部分类不经过 ClassFileTransformer 处理

Aperta
#35 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
579
Fork
128
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

正常来说,一个普通的 java agent,如果是以 `-javaagent:` 方式启动,注册 ClassFileTransformer 之后,后续加载的类都会经过注册的 ClassFileTransformer 处理。

但实际发现,有部分类并不会被处理。只有注册时设置`canRetransform`为true时,才会被处理。

比如这个类:`org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory` 。

```
Instrumentation#addTransformer(ClassFileTransformer transformer, boolean canRetransform);
```

记录一下现象。

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Riproducete il comportamento descritto per org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory utilizzando un agente Java avviato con -javaagent:. Iniziate confrontando Instrumentation#addTransformer(ClassFileTransformer, boolean) con la registrazione impostando canRetransform su true. Il lavoro è completato quando la differenza osservata è spiegata e la classe interessata viene gestita in modo coerente, con un test di regressione se il repository fornisce una posizione adatta per i test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.