You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Sameer Tiwari (Jira)" <ji...@apache.org> on 2020/09/07 09:29:00 UTC

[jira] [Comment Edited] (OPENEJB-2147) open-ejb upgrade from 3.1.4 doesn't support java 8 lambda expressions

    [ https://issues.apache.org/jira/browse/OPENEJB-2147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17191588#comment-17191588 ] 

Sameer Tiwari edited comment on OPENEJB-2147 at 9/7/20, 9:28 AM:
-----------------------------------------------------------------

[~romain.manni-bucau] Hi,

When i upgrade javaee from 5.3-0 to 6.0-6 , *javax.ws.rs.core.Response* class starts to load from javaee-api jar, whereas with javaee 5.3-0 it comes from *javax.ws.rs-api* (which is correct).

The one that loads from javaee has missing methods like following, so i didn't look to upgrade javaee
{code:java}
public abstract <T> T readEntity(Class<T> var1); {code}
Any work around for above issue?

 

Moreover, Latest of +*xbean-asm-shaded is 4.5*+ , there's no 5.x,

I excluded following jars from openejb-core (3.1.4)
{code:java}
<dependency>
  <groupId>org.apache.openejb</groupId>
  <artifactId>openejb-core</artifactId>
  <version>3.1.4</version>
  <exclusions>
    <exclusion>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-asm-shaded</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-finder-shaded</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-reflect</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-naming</artifactId>
    </exclusion>
  </exclusions>
</dependency> {code}
and Included all these jars of 4.5 version , got this error:

Caused by: java.lang.NoClassDefFoundError: org/apache/xbean/asm/ClassVisitor

 

Please help!


was (Author: sameerti_nok):
[~romain.manni-bucau] Hi,

When i upgrade javaee from 5.3-0 to 6.0-6 , *javax.ws.rs.core.Response* class starts to load from javaee-api jar, whereas with javaee 5.3-0 it comes from *javax.ws.rs-api* (which is correct).

The one that loads from javaee has missing methods like following, so i didn't look to upgrade javaee
{code:java}
public abstract <T> T readEntity(Class<T> var1); {code}
Any work around for above issue?

 

Moreover, Latest of +*xbean-asm-shaded is 4.5*+ , there's no 5.x, 

I excluded following jars from openejb-core (3.1.4)
{code:java}

<dependency>
                        <groupId>org.apache.openejb</groupId>
                        <artifactId>openejb-core</artifactId>
                        <version>3.1.4</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>org.apache.xbean</groupId>
                                        <artifactId>xbean-asm-shaded</artifactId>
                                </exclusion>
                                <exclusion>
                                        <groupId>org.apache.xbean</groupId>
                                        <artifactId>xbean-finder-shaded</artifactId>
                                </exclusion>
                                <exclusion>
                                        <groupId>org.apache.xbean</groupId>
                                        <artifactId>xbean-reflect</artifactId>
                                </exclusion>
                                <exclusion>
                                        <groupId>org.apache.xbean</groupId>
                                        <artifactId>xbean-naming</artifactId>
                                </exclusion>
                        </exclusions>
                </dependency>

 {code}
 

and Included all these jars of 4.5 version , got this error:

Caused by: java.lang.NoClassDefFoundError: org/apache/xbean/asm/ClassVisitor

 

Please help!

> open-ejb upgrade from 3.1.4 doesn't support java 8 lambda expressions
> ---------------------------------------------------------------------
>
>                 Key: OPENEJB-2147
>                 URL: https://issues.apache.org/jira/browse/OPENEJB-2147
>             Project: OpenEJB
>          Issue Type: Bug
>          Components: container system
>            Reporter: Sameer Tiwari
>            Priority: Blocker
>         Attachments: maven-module-versions.txt
>
>
> We have following versions in our poms
> <openejb.javaee-api.version>5.0-3</openejb.javaee-api.version> <openejb.core.version>3.1.4</openejb.core.version>
> Our build time unit tests work with above versions with java 8 as long as there's +*NO Java 8 lambda expressions in code*+
> As soon as we add any lambda expression we get errors like following:
> {code:java}
> -------------------------------------------------------------------------------------------------------------- T E S T S-------------------------------------------------------Running com.a.b.c.d.e.f.ZTResourceTest Apache OpenEJB 3.1.4    build: 20101112-03:32http://openejb.apache.org/ERROR - FATAL ERROR: Unknown error in Assembler.  Please send the following stack trace and this message to users@openejb.apache.org : java.lang.ArrayIndexOutOfBoundsException: 25460 at org.apache.xbean.asm.ClassReader.readClass(Unknown Source) at org.apache.xbean.asm.ClassReader.accept(Unknown Source) at org.apache.xbean.asm.ClassReader.accept(Unknown Source) at org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:253) at org.apache.openejb.util.AnnotationFinder.find(AnnotationFinder.java:157) at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1210) at org.apache.openejb.config.DeploymentsResolver.processUrls(DeploymentsResolver.java:365) at org.apache.openejb.config.DeploymentsResolver.loadFromClasspath(DeploymentsResolver.java:217) at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:379) at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:300) at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60) at org.apache.openejb.OpenEJB.init(OpenEJB.java:271) at org.apache.openejb.OpenEJB.init(OpenEJB.java:250) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71) at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53) at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) at javax.naming.InitialContext.init(InitialContext.java:244) at javax.naming.InitialContext.<init>(InitialContext.java:216) at motive.test.BaseServiceTest.initialize(BaseServiceTest.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
>  
> FATAL - OpenEJB has encountered a fatal error and cannot be started: Assembler failed to build the container system.FATAL - OpenEJB has encountered a fatal error and cannot be started: Assembler failed to build the container system.org.apache.openejb.OpenEJBException: java.lang.ArrayIndexOutOfBoundsException: 25460: 25460 at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:293) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125) at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60)
> ....{code}
>  
> So we modified those versions to below:
> <openejb.javaee-api.version>6.0-6</openejb.javaee-api.version> <openejb.core.version>4.7.5</openejb.core.version>
> Then some of our classes were using following Response class 
> javax.ws.rs.core.Response from javax.ws.rs module however upon add above versions, it started picking up this class from above ones and we got many compilation errors about readEntity method missing for javax.ws.rs.core.Response class
> If we try and add javax.ws.rs maven module in poms then we get some other issues about 
>  
> {color:#ff0000}*Caused by: java.lang.NoSuchMethodError: javax.ejb.ApplicationException.inherited()Z*{color}
> So could you please help us with this openejb upgrade procedure?
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)