Yes it does work. If Java is 9+ then it uses a forked process to attach the
agent. If before then usual attach should work.

Le ven. 16 août 2019 à 14:46, Jonathan Gallimore <
[email protected]> a écrit :

> Adding the flag seems reasonable. Does the Bytebuddy-style workaround still
> work for earlier Java versions?
>
> Jon
>
> On Thu, Aug 15, 2019 at 12:32 PM Jean-Louis Monteiro <
> [email protected]> wrote:
>
> > Hi,
> >
> > This is a follow up of https://issues.apache.org/jira/browse/TOMEE-2619
> > When running on Java9+, the JVM does not allow anymore to attach an
> > instrumentation to the current JVM (self), unless you add the
> > flag -Djdk.attach.allowAttachSelf which is off by default.
> >
> > So currently our javaagent required for OpenJPA for instance fail
> >
> > > Caused by: java.io.IOException: Can not attach to current VM
> > >  at
> >
> jdk.attach/sun.tools.attach.HotSpotVirtualMachine.<init>(HotSpotVirtualMachine.java:75)
> > >  at
> >
> jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:56)
> > >  at
> >
> jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
> > >  at
> >
> jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
> > >  ... 43 more
> > > INFO - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested
> > installation of a ClassFileTransformer which requires a JavaAgent.  See
> > http://tomee.apache.org/javaagent.html
> > >
> > >
> > I looked at different options.
> > Of course short term, I'll go with adding the flag so we can focus on
> Java
> > 11 support.
> > Long term, I'm wondering if we should have some trick like bytebuddy
> which
> > does a very good job. See discussion
> > https://github.com/raphw/byte-buddy/issues/295
> >
> > and the agent attach code
> >
> >
> https://github.com/raphw/byte-buddy/blob/master/byte-buddy-agent/src/main/java/net/bytebuddy/agent/ByteBuddyAgent.java#L659
> >
> > What do you guys think?
> > Anyone willing to contribute that to TomEE?
> >
> > ByteBuddy is ASL v2, so we can of course reuse some of its code.
> >
> > --
> > Jean-Louis Monteiro
> > http://twitter.com/jlouismonteiro
> > http://www.tomitribe.com
> >
>

Reply via email to