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

Wolfgang Knauf commented on TOMEE-4418:
---------------------------------------

Not really, it is part of a rather complex testsuite, and it will require a bit 
of work and research until the migration to TomEE 10 is available on github. If 
you are willing to take a look, I can post guidelines to reproduce the issue 
when it is committed.

Currently, I consider my initial request a "won't fix", as it does not seem to 
be possible and I found an easy workaround.

> "arquillian-tomee-remote": SerialVersionUID conflict with ServletException
> --------------------------------------------------------------------------
>
>                 Key: TOMEE-4418
>                 URL: https://issues.apache.org/jira/browse/TOMEE-4418
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Arquillian Adapters
>    Affects Versions: 9.1.3, 10.0.0-M2
>            Reporter: Wolfgang Knauf
>            Priority: Minor
>
> When updating a project to JakartaEE and TomEE 9, I noticed this problem: the 
> project has one unit test that triggers a ServletException on the server 
> side, which is caught, serialized and deserialized on the client side.
> The client side is a unit test driven by "arquillian-tomee-remote".
> Unfortunately, the underlying Tomcat library 
> ([https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat-servlet-api/10.0.27/tomcat-servlet-api-10.0.27.jar)]
>  contains a ServletException with a SerialVersionID of "1", which is not the 
> same as the version in the JakartaEE reference implementation.
> Now the problem: my test project has those dependencies:
>  
> {quote}{{<dependency>}}
> {{  <groupId>org.apache.tomee</groupId>}}
> {{  <artifactId>arquillian-tomee-remote</artifactId>}}
> {{  <version>9.1.3</version>}}
> {{  <scope>test</scope>}}
> {{</dependency>}}
> {{<dependency>}}
> {{  <groupId>org.apache.tomcat</groupId>}}
> {{  <artifactId>tomcat-servlet-api</artifactId>}}
> {{  <scope>provided</scope>}}
> {{  <version>10.0.27</version>}}
> {{</dependency>}}
> {quote}
>  
> With the previous version, this worked. But with the new arquillian adapter, 
> it pulls in 
> [https://repo.maven.apache.org/maven2/org/apache/tomee/jakartaee-api/9.1.1/jakartaee-api-9.1.1.jar]
>  , which also contains a ServletException, but with a different 
> SerialVersionUID.
> Thus, the test fails:
> {{class java.io.InvalidClassException: jakarta.servlet.ServletException; 
> local class incompatible: stream classdesc serialVersionUID = 1, local class 
> serialVersionUID = 4221302886851315160}}
>  
> My workaround: exclude "org.apache.tomee:jakartaee-api" from the arquillian 
> adapter, then add it back after declaring the Tomcat servlet api (the one 
> with the "1" SerialVersionUID). It seems the ServletException is now loaded 
> from the first jar, and my test works.
> {quote}{{<dependency>}}
> {{  <groupId>org.apache.tomee</groupId>}}
> {{  <artifactId>arquillian-tomee-remote</artifactId>}}
> {{  <version>9.1.3</version>}}
> {{  <scope>test</scope>}}
> {{  <exclusions>}}
> {{    <exclusion>}}
> {{      <groupId>org.apache.tomee</groupId>}}
> {{      <artifactId>jakartaee-api</artifactId>}}
> {{    </exclusion>}}
> {{  </exclusions>}}
> {{</dependency>}}
> {{<dependency>}}
> {{  <groupId>org.apache.tomcat</groupId>}}
> {{  <artifactId>tomcat-servlet-api</artifactId>}}
> {{  <scope>provided</scope>}}
> {{  <version>10.0.27</version>}}
> {{</dependency>}}
> {{<dependency>}}
> {{  <groupId>org.apache.tomee</groupId>}}
> {{  <artifactId>jakartaee-api</artifactId>}}
> {{  <scope>provided</scope>}}
> {{  <version>9.1.1</version>}}
> {{</dependency>}}
> {quote}
>  
> I have no idea whether this is anything that you could change. It would work 
> if the arquillian adapter would pull the tomcat servlet api first. Or the 
> Tomcat guys could fix the SerialVersionUID ;).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to