On Tue, 9 Jul 2024 12:17:25 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> @AlanBateman would you mind having a quick look at this trivial, 
>> documentation-only PR and let me know if you're OK with it?
>> 
>> Thank you and best regards,
>> Volker
>
>> @AlanBateman would you mind having a quick look at this trivial, 
>> documentation-only PR and let me know if you're OK with it?
> 
> (Catching up as I was away for a few days). 
> 
> I agree it would be useful to have an API note on this topic. There were 
> several reports of deadlocks, ClassCircularityError, and other hard to 
> diagnose issues when support for instrumentation was originally introduced in 
> JDK 5. I think agent maintainers learned to exclude many of the core classes 
> in java.base but that is always a moving target and there have been a few 
> more sightings/reports recently (maybe due to newer features doing more in 
> Java rather than in the VM).
> 
> I agree that the ClassFileTransformer class description is the best place for 
> this. My initial reaction was to wonder about the j.l.instrument package 
> description but it is more focused on starting agents and the JAR file 
> attributes so I think your proposed location is best.. 
> 
> As regards the text then it might be better to start with a sentence to say 
> that the "transform" method may be called from critical points in JDK core 
> classes or called to transform JDK core classes. You've got some of this in 
> second sentence but I think better to lead with it before revealing one of 
> the several possible things that can happen. I think part of the lead in 
> needs to say "great care must be taken" or something like that to get across 
> the point that the ClassFileTransformer implementor has the potential to 
> cause many possible issues. For the same class and linkage error then 
> probably best to not use the phrase "transitively requires" as it's too close 
> "requires transitive" used in module declarations. 
> 
> Note that the `@jvms` tag can be used to reference the JVMS section. You'll 
> see a few examples in other classes.

Thanks a lot for looking into this @AlanBateman. I've tried to integrate your 
suggestions into the new version of the PR.

I already used the `@jvms` tag in the latest version of my PR based on @liach's 
suggestion. I also updated the other reference to the JVMS above the new 
`@apiNote` which didn't used the tag either (and was wrong because the JVMS 
sections have changed since Java 5 :)

Please let me know if this sounds better now or if you see further room for 
improvement.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20011#issuecomment-2217856802

Reply via email to