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