alibaba / alibaba/one-java-agent
在 addTransformer 时,不设置 canRetransform 为 true,会有一部分类不经过 ClassFileTransformer 处理
- 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