alibaba / alibaba/one-java-agent
在 addTransformer 时,不设置 canRetransform 为 true,会有一部分类不经过 ClassFileTransformer 处理
- Vorherrschende Sprache
- Java
- Sterne
- 579
- Forks
- 128
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
正常来说,一个普通的 java agent,如果是以 `-javaagent:` 方式启动,注册 ClassFileTransformer 之后,后续加载的类都会经过注册的 ClassFileTransformer 处理。
但实际发现,有部分类并不会被处理。只有注册时设置`canRetransform`为true时,才会被处理。
比如这个类:`org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory` 。
```
Instrumentation#addTransformer(ClassFileTransformer transformer, boolean canRetransform);
```
记录一下现象。
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Reproduzieren Sie das für org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory beschriebene Verhalten mithilfe eines mit -javaagent: gestarteten Java-Agenten. Beginnen Sie mit dem Vergleich von Instrumentation#addTransformer(ClassFileTransformer, boolean) mit der Registrierung, bei der canRetransform auf true gesetzt ist. Als erledigt gilt die Aufgabe, wenn der beobachtete Unterschied erklärt ist und die betroffene Klasse konsistent behandelt wird, mit einem Regressionstest, falls das Repository eine geeignete Teststelle bietet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100