Hi Otávio and folks,

That is the issue:
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java#L110

Seems that we need to change the strategy to work like it:
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java#L98-L101

I did some changes, but it result in a lot of error, I'm trying see if we
can reuse that CustomizableURLClassLoader to be like a "principal" TomEE's
ClassLoader.

But, the BasicURLClassPath is extended for others:
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemClassPath.java#L86
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/TomcatClassPath.java#L208-L230
 (not sure if should case same issue that otavio got, but probably yes)

So, I don't have a solution for it now, still trying understand how TomEE
manipulate that classloader.

Thoughts?

Em seg, 4 de mar de 2019 às 12:30, Daniel Cunha <daniels...@apache.org>
escreveu:

> Yeah.. I was seeing that exactly now. this option was dropped.
>
> Em seg, 4 de mar de 2019 12:23 PM, Otávio Gonçalves de Santana <
> osant...@tomitribe.com> escreveu:
>
>> That does not work, there are changes at ClassLoader since Java 9. That
>> became forbidden at Java 11, because of these changes.
>>
>>
>> On Mon, Mar 4, 2019 at 12:03 PM Daniel Cunha <daniels...@apache.org>
>> wrote:
>>
>> > Hi Otávio,
>> >
>> > To fix it using jdk flags, you can use --illegal-access
>> > Try it.
>> >
>> > Em seg, 4 de mar de 2019 às 11:54, Otávio Gonçalves de Santana <
>> > osant...@tomitribe.com> escreveu:
>> >
>> > > Now, I got a new error:
>> > >
>> > > Illegal reflective access by
>> > org.apache.openejb.loader.BasicURLClassPath$4
>> > >
>> > >
>> >
>> (file:/tmp/temp14662460932513193953dir/root/lib/openejb-loader-8.0.0-SNAPSHOT.jar)
>> > > to field java.net.URLClassLoader.ucp
>> > >
>> > >
>> > > On Mon, Mar 4, 2019 at 10:49 AM Otávio Gonçalves de Santana <
>> > > osant...@tomitribe.com> wrote:
>> > >
>> > > > I got the idea, I'll work on it.
>> > > > Thank you.
>> > > >
>> > > > On Mon, Mar 4, 2019 at 10:47 AM Jonathan Gallimore <
>> > > > jonathan.gallim...@gmail.com> wrote:
>> > > >
>> > > >> It sounded like you could make it work with a compiler config
>> change
>> > > (not
>> > > >> a
>> > > >> code change) in Java 11 - is that correct?
>> > > >>
>> > > >> If so, can't you just provide that config only when running the
>> build
>> > on
>> > > >> Java 11?
>> > > >>
>> > > >> Something like:
>> > > >>
>> > > >> <profiles>
>> > > >>   <profile>
>> > > >>     <id>java-11</id>
>> > > >>     <activation>
>> > > >>       <jdk>11</jdk>
>> > > >>     </activation>
>> > > >>     <build>
>> > > >>       <plugins>
>> > > >>         <plugin>
>> > > >>           <artifactId>maven-compiler-plugin</artifactId>
>> > > >>           <configuration>
>> > > >>             <compilerArgs>
>> > > >>               <arg>--add-modules</arg>
>> > > >>               <arg>jdk.internal.loader</arg>
>> > > >>            </compilerArgs>
>> > > >>         </configuration>
>> > > >>      </plugin>
>> > > >>   </profile>
>> > > >> </profiles>
>> > > >>
>> > > >> (totally not tested...)
>> > > >>
>> > > >> Does that make sense? The failover artifacts themselves are simply
>> > > >> deployed
>> > > >> and run as part of a test suite, so we don't ship them as part of
>> > TomEE
>> > > >> itself. Its desirable to run the itests on both Java 8 and 11 to
>> see
>> > if
>> > > >> there are any issues.
>> > > >>
>> > > >> Jon
>> > > >>
>> > > >> On Mon, Mar 4, 2019 at 1:27 PM Otávio Gonçalves de Santana <
>> > > >> osant...@tomitribe.com> wrote:
>> > > >>
>> > > >> > Hey JonG.
>> > > >> > Could you explain more about it?
>> > > >> > Do you mean, create a profile to skip this project such as
>> failover.
>> > > >> >
>> > > >> > I’ve checked some options such as redesign the classpath and
>> create
>> > > >> wrapper
>> > > >> > the BasicURLClass. Both with a huge change of code.
>> > > >> >
>> > > >> >     <profile>
>> > > >> >       <id>skip-java-11</id>
>> > > >> >       <modules>
>> > > >> >         <module>failover</module>
>> > > >> >       </modules>
>> > > >> >     </profile>
>> > > >> >
>> > > >> >
>> > > >> >
>> > > >> > On Fri, Mar 1, 2019 at 5:19 PM Jonathan Gallimore <
>> > > >> > jonathan.gallim...@gmail.com> wrote:
>> > > >> >
>> > > >> > > If that's just for itests, I'd be inclined to try creating a
>> > profile
>> > > >> to
>> > > >> > add
>> > > >> > > that where the Java version is >8.
>> > > >> > >
>> > > >> > > What do you think?
>> > > >> > >
>> > > >> > > Jon
>> > > >> > >
>> > > >> > > On Fri, Mar 1, 2019 at 6:16 PM Otávio Gonçalves de Santana <
>> > > >> > > osant...@tomitribe.com> wrote:
>> > > >> > >
>> > > >> > > > Hey guys
>> > > >> > > >
>> > > >> > > > I'm working to make the tests compatible with both Java 8 and
>> > Java
>> > > >> 11
>> > > >> > > > version.
>> > > >> > > >
>> > > >> > > >
>> > > >> > > > Right now, I'm at the failover
>> > > >> > > > <https://github.com/apache/tomee/tree/master/itests/failover
>> >
>> > > >> project
>> > > >> > > that
>> > > >> > > > has this issue:
>> > > >> > > >
>> > > >> > > > java.lang.IllegalAccessException: class
>> > > >> > > > org.apache.openejb.loader.BasicURLClassPath cannot access
>> class
>> > > >> > > > jdk.internal.loader.URLClassPath (in module java.base)
>> because
>> > > >> module
>> > > >> > > > java.base does not export jdk.internal.loader to unnamed
>> module
>> > > >> > > > @4c6e276e
>> > > >> > > >     at
>> > > >> > > >
>> > > >> > >
>> > > >> >
>> > > >>
>> > >
>> >
>> java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
>> > > >> > > >
>> > > >> > > >
>> > > >> > > > There are two ways to solve it;
>> > > >> > > >
>> > > >> > > >    - the first one is using the filemodule-info.java
>> > > >> > > >    - Using the add-module argument at maven.
>> > > >> > > >
>> > > >> > > >
>> > > >> > > > <plugin>
>> > > >> > > >     <artifactId>maven-compiler-plugin</artifactId>
>> > > >> > > >     <configuration>
>> > > >> > > >         <compilerArgs>
>> > > >> > > >             <arg>--add-modules</arg>
>> > > >> > > >             <arg>dk.internal.loader</arg>
>> > > >> > > >         </compilerArgs>
>> > > >> > > >     </configuration></plugin>
>> > > >> > > >
>> > > >> > > >
>> > > >> > > > However, both make unavailable the situation to run Java 8.
>> > > >> > > >
>> > > >> > > > I still working to solve it.
>> > > >> > > >
>> > > >> > > > On Fri, Mar 1, 2019 at 2:11 PM Jonathan Gallimore <
>> > > >> > > > jonathan.gallim...@gmail.com> wrote:
>> > > >> > > >
>> > > >> > > > > Killed of the builds and forced a new one.
>> > > >> > > > >
>> > > >> https://ci.apache.org/builders/tomee-trunk-ubuntu-jvm8/builds/1048
>> > > >> > > > >
>> > > >> > > > > Jon
>> > > >> > > > >
>> > > >> > > > > On Fri, Mar 1, 2019 at 4:28 PM j4fm <
>> > james.m...@my-managed.net>
>> > > >> > wrote:
>> > > >> > > > >
>> > > >> > > > > > Ah yeah that makes sense.
>> > > >> > > > > >
>> > > >> > > > > > It won't let me stop the current stuck build.  Would you
>> be
>> > > able
>> > > >> > to?
>> > > >> > > > > >
>> > > >> > > > > > From the logs it looks like it succeeds up until the
>> point
>> > > it's
>> > > >> > > > frozen...
>> > > >> > > > > > I'm not sure what's up with it.  Have you seen it freeze
>> > like
>> > > >> this
>> > > >> > > > > before?
>> > > >> > > > > > Maybe it's an issue with the CI agent instead?
>> > > >> > > > > >
>> > > >> > > > > >
>> > > >> > > > > >
>> > > >> > > > > > --
>> > > >> > > > > > Sent from:
>> > > >> > > > > >
>> > > >> http://tomee-openejb.979440.n4.nabble.com/TomEE-Dev-f982480.html
>> > > >> > > > > >
>> > > >> > > > >
>> > > >> > > >
>> > > >> > >
>> > > >> >
>> > > >>
>> > > >
>> > >
>> >
>> >
>> > --
>> > Daniel "soro" Cunha
>> > https://twitter.com/dvlc_
>> >
>>
>

-- 
Daniel "soro" Cunha
https://twitter.com/dvlc_

Reply via email to