Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-dev] [External] : Has EclipseLink 5.0.0-B06 passed the Standalone Persistence 3.2 TCK?

https://github.com/jakartaee/platform-tck/issues/2111#issuecomment-2827859563 lists the remaining failures. 

Description of the test vehicles copied from the EE 11 Platform TCK:

==== Persistence Test Vehicles

The persistence tests are run in a variety of "vehicles" from which the entity manager is obtained and the transaction type is defined for use. There are six vehicles used for these tests:

* `stateless3`: Bean-managed stateless session bean using
a Jakarta Transactions `EntityManager`; uses UserTransaction` methods for transaction demarcation  (Full Platform Only)

* `stateful3`: Container-managed stateful session bean using
`@PersistenceContext` annotation to inject Jakarta Transactions `EntityManager;` uses container-managed transaction demarcation with a transaction attribute (required)  (Full Platform Only)

* `appmanaged`: Container-managed stateful session bean using `@PersistenceUnit` annotation to inject an `EntityManagerFactory`; the `EntityManagerFactory` API is used to create an Application-Managed Jakarta Transactions `EntityManager`, and uses the container to demarcate transactions (Full Platform Only)

* `appmanagedNoTx`: Container-managed stateful session bean using `@PersistenceUnit` annotation to inject an `EntityManagerFactory`; the `EntityManagerFactory` API is used to create an Application-Managed Resource Local `EntityManager`, and uses the `EntityTransaction` APIs to control transactions (Full Platform Only)

* `pmservlet`: Servlet that uses the `@PersistenceContext` annotation at the class level and then uses JNDI lookup to obtain the `EntityManager`; alternative to declaring the persistence context dependency via a `persistence-context-ref` in `web.xml` and uses `UserTransaction` methods for transaction demarcation

* `puservlet`: Servlet that injects an `EntityManagerFactory` using the `@PersistenceUnit` annotation to create a to Resource Local `EntityManager`, and uses `EntityTransaction` APIs for transaction demarcation

Thanks for your help!

Scott

On Mon, May 5, 2025 at 1:01 PM Scott Marlow <smarlow@xxxxxxxxxx> wrote:
Good to hear that EclipseLink still passes the Standalone 3.2 TCK! 

How does the EclipseLink team usually deal with Jakarta EE TCK test failures? 

We are trying to get to zero Jakarta EE 11 (Persistence tests) failures and this is for a failure due to exception thrown from https://github.com/eclipse-ee4j/eclipselink/blob/master/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java#L3729  It is hard to tell where the bug is that is causing the exception. 

Scott

On Mon, May 5, 2025 at 11:44 AM Radek Felcman <radek.felcman@xxxxxxxxxx> wrote:
Hello Scott,

        I re-verified latest EclipseLink releases against latest Jakarta Persistence TCK tests and everything passing include mentioned
ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.Client.cascadeAllMXMTest4()

        There is review of used environment:
                Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
                Java version: 21.0.6, vendor: Oracle Corporation
                Apache Derby Network Server - 10.15.2.0 - (1873585) started and ready to accept connections on port 1527

                TCK
                        Latest main (last commit f49667934d8d3aaa467b8503b503308f8bd1b106) from https://github.com/jakartaee/platform-tck

                in
                $TCK_PROJECT/tcks/apis/persistence/persistence-outside-container/bin/pom.xml jakarta.tck:persistence-tck-runner:3.2.0)
                mvn clean install -P staging,full,eclipselink

                with following EclipseLink and EclipseLink ASM versions ($TCK_PROJECT/tcks/apis/persistence/persistence-outside-container/bin/pom.xml jakarta.tck:persistence-tck-runner:3.2.0)

<!--Available from Maven Central
                 <eclipselink.asm.version>9.7.1</eclipselink.asm.version>
                 <eclipselink.version>5.0.0-B06</eclipselink.version>
-->
Available from Maven Central
                 <eclipselink.asm.version>9.7.1</eclipselink.asm.version>
                 <eclipselink.version>5.0.0-B07</eclipselink.version>
<!--Build on latest master from         https://github.com/eclipse-ee4j/eclipselink (last commit 7dd5c194b294938a08bc145175f612d1854a4a60)
                 <eclipselink.asm.version>9.8.0</eclipselink.asm.version>
                 <eclipselink.version>5.0.0-SNAPSHOT</eclipselink.version>
-->

Some maven-failsafe-plugin reports are in the attachment.

About some changes in EclipseLink related with "Cascade Remove" I don't remember any commit which should leads into reported regression.

Thank You
Radek


On 4/30/25 13:59, Radek Felcman via eclipselink-dev wrote:
> Hello Scott,
>
>      thank You for the offer. Currently I'm working on another EclipseLink related task. I believe, that next week I'll start with this issue. In case of troubles I'll ping You.
>
> Thank You
> Radek
>
> On 4/29/25 21:33, Scott Marlow wrote:
>> Hello Radek,
>>
>> EclipseLink CI might start working again soon or maybe not depending on when Eclipse CI recovers.  Would it make sense to have a zoom call soon with my screen shared for a remote debug (of EclipseLink) session to step
>> through the test failure together?
>>
>> Thanks,
>> Scott
>>
>> On Fri, Apr 25, 2025 at 3:22 PM Scott Marlow <smarlow@xxxxxxxxxx <mailto:smarlow@xxxxxxxxxx>> wrote:
>>
>>     In case it helps I set a breakpoint in UnitOfWorkImpl which is reached at [1] and the call to performRemove(Object toBeDeleted = `B` class instance) that throws the exception is called from
>>     cascadePerformRemoveIfRequired(). The `B` class instances have already been removed by previous calls.  For reference, I'm debugging the EE TCK test with EclipseLink master branch sources.  So we must be trying to
>>     cascade the remove to all visitedobjects [2] which includes `A` and `B`.
>>
>>     Hope this helps explain the problem we see with the described EE TCK test.
>>
>>     Scott
>>
>>     [1]
>>     performRemove:3729, UnitOfWorkImpl (org.eclipse.persistence.internal.sessions) [2]
>>     cascadePerformRemoveIfRequired:478, CollectionMapping (org.eclipse.persistence.mappings)
>>     cascadePerformRemove:2631, ObjectBuilder (org.eclipse.persistence.internal.descriptors)
>>     performRemove:3745, UnitOfWorkImpl (org.eclipse.persistence.internal.sessions) [1]
>>     remove:677, EntityManagerImpl (org.eclipse.persistence.internal.jpa)
>>     cascadeAllMXMTest4:310, Client (ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany)
>>
>>     [2] visitedObjects = {java.util.IdentityHashMap@14148}  size = 2
>>       {ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.B@14129}  -> {ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.B@14129}
>>       {ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.A@14147}  -> {ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.A@14147}
>>
>>     On Fri, Apr 25, 2025 at 10:42 AM Scott Marlow <smarlow@xxxxxxxxxx <mailto:smarlow@xxxxxxxxxx>> wrote:
>>
>>
>>
>>         On Fri, Apr 25, 2025 at 5:44 AM Radek Felcman <radek.felcman@xxxxxxxxxx <mailto:radek.felcman@xxxxxxxxxx>> wrote:
>>
>>             Hello Scott,
>>
>>                      I'll re-verify it when our Jenkins instance https://urldefense.com/v3/__https://ci.eclipse.org/eclipselink/__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-
>> xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTutU16xZ4$  <https://urldefense.com/v3/__https://ci.eclipse.org/eclipselink/__;!!ACWV5N9M2RV99hQ!Pss8bcedRJCA8-
>>             odPPY_BMrkGpPNhFvxo1-QBQtIzVZmkocmw25xbjNdDFZ41MHgynEdJD0VxiV3tgDXpvw$> at Eclipse CI will be available (TCK job is there). It seems, that Eclipse CI https://urldefense.com/v3/__https://ci.eclipse.org/__;!!
>> ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTuvLSCDys$  <https://urldefense.com/v3/
>>             __https://urldefense.com/v3/__https://ci.eclipse.org/__;!!ACWV5N9M2RV99hQ!Pss8bcedRJCA8-odPPY_BMrkGpPNhFvxo1-QBQtIzVZmkocmw25xbjNdDFZ41MHgynEdJD0VxiV3XTkWpIY$__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-
>> xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTuEf4c2ew$ > has some big outage.
>>
>>
>>         Thank you!  It may be a while before CI is back.
>>
>>         If the TCK test does pass for you, could you please respond with why we hit https://urldefense.com/v3/__https://github.com/eclipse-ee4j/eclipselink/blob/master/foundation/org.eclipse.persistence.core/src/main/
>> java/org/eclipse/persistence/__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTuGUDZers$         internal/sessions/UnitOfWorkImpl.java#L3729 <https://
>> urldefense.com/v3/__https://github.com/eclipse-ee4j/eclipselink/blob/master/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/
>>         internal/sessions/UnitOfWorkImpl.java*L3729__;Iw!!ACWV5N9M2RV99hQ!Pss8bcedRJCA8-odPPY_BMrkGpPNhFvxo1-QBQtIzVZmkocmw25xbjNdDFZ41MHgynEdJD0VxiV3QFEOib0$> which I think means the "a1" entity was removed from the
>>         persistence context as part of the remove of related other entity classes (likely as part of the handling of CascadeType.ALL) but no exception should be thrown I believe but there must be more to it then just
>>         that when running the test as part of EE deployment.
>>
>>         Thanks,
>>         Scott
>>
>>
>>             Thank You
>>             Radek
>>
>>             On 4/24/25 15:49, Scott Marlow via eclipselink-dev wrote:
>>              > I am wondering if EclipseLink releases always pass the Persistence TCK before the release?  I assume yes but still wanted to know as we are seeing a GlassFish failure running a test that is also in the
>>             Standalone
>>              > Persistence TCK [1].
>>              >
>>              > The EE version of the test [2] fails on the call to "getEntityManager().remove(a1)" [3] with exception [4].  In the debugger I evaluated "getEntityManager().contains(a1)" just prior to the failure and see
>>             "true".  Are
>>              > there any later EclipseLink code changes made after the 5.0.0-B06 release that might help with this failure?
>>              >
>>              > Scott
>>              >
>>              > [1] https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-outside-container/spec-tests/src/main/java/ee/
>> jakarta/tck/persistence/core/__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTuhO2-h30$             entitytest/ <https://urldefense.com/v3/__https://
>> github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-outside-container/spec-tests/src/main/java/
>>             ee/jakarta/tck/persistence/core/entitytest/__;!!ACWV5N9M2RV99hQ!Pss8bcedRJCA8-odPPY_BMrkGpPNhFvxo1-QBQtIzVZmkocmw25xbjNdDFZ41MHgynEdJD0VxiV3HWmWwTU$>
>>              > cascadeall/manyXmany/Client.java#L283 <https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-outside-
>>             container/spec-tests/ <https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-outside-container/spec-tests/>
>>              > src/main/java/ee/jakarta/tck/persistence/core/entitytest/cascadeall/manyXmany/Client.java*L283__;Iw!!ACWV5N9M2RV99hQ!MQO-WF9LmxKIjXDBKiucXxT3SIKSEX-
>>             Eom3pBhkYFlpGQDOPCjbOTv0Nd-3diVxmE9eWNLlL78rpiTEjXyJ_gd04XTyYmV4$>
>>              >
>>              > [2] https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-inside-container/spec-tests/src/main/java/ee/
>> jakarta/tck/persistence/core/__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTuJAnnWxE$             entitytest/ <https://urldefense.com/v3/__https://
>> github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-inside-container/spec-tests/src/main/java/ee/
>>             jakarta/tck/persistence/core/entitytest/__;!!ACWV5N9M2RV99hQ!Pss8bcedRJCA8-odPPY_BMrkGpPNhFvxo1-QBQtIzVZmkocmw25xbjNdDFZ41MHgynEdJD0VxiV36XVeJkM$>
>>              > cascadeall/manyXmany/Client.java#L310 <https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-inside-
>>             container/spec-tests/ <https://urldefense.com/v3/__https://github.com/jakartaee/platform-tck/blob/3e642738584b2e4b9a6a9d80bb12fed6b53afb7e/tcks/apis/persistence/persistence-inside-container/spec-tests/>
>>              > src/main/java/ee/jakarta/tck/persistence/core/entitytest/cascadeall/manyXmany/Client.java*L310__;Iw!!ACWV5N9M2RV99hQ!MQO-WF9LmxKIjXDBKiucXxT3SIKSEX-
>>             Eom3pBhkYFlpGQDOPCjbOTv0Nd-3diVxmE9eWNLlL78rpiTEjXyJ_gd04SZtZTkw$>
>>              >
>>              > [3]
>>              >
>>              >      public void cascadeAllMXMTest4()throws Exception {
>>              >
>>              >      logTrace("Begin cascadeAllMXMTest4");
>>              >      boolean pass =false;
>>              >      A a1;
>>              >      Collection newCol;
>>              >      try {
>>              >         final B b1 =new B("1","b1",5);
>>              >         final B b2 =new B("2","b2",5);
>>              >         final B b3 =new B("3","b3",5);
>>              >         final B b4 =new B("4","b4",5);
>>              >         Vector v1 =new Vector();
>>              >         v1.add(b1);
>>              >         v1.add(b2);
>>              >         v1.add(b3);
>>              >         v1.add(b4);
>>              >
>>              >         getEntityTransaction().begin();
>>              >         logTrace("New A instance");
>>              >         a1 =new A("5","bean5",5,v1);
>>              >         getEntityManager().persist(a1);
>>              >
>>              >         newCol =a1.getBCol();
>>              >
>>              >         dumpCollectionDataB(newCol);
>>              >
>>              >         if (newCol.contains(b1) &&newCol.contains(b2) &&newCol.contains(b3) &&newCol.contains(b4)) {
>>              >            try {
>>              >               logTrace("Remove instances");
>>              >               getEntityManager().remove(findB("1"));
>>              >               getEntityManager().remove(findB("2"));
>>              >               getEntityManager().remove(findB("3"));
>>              >               getEntityManager().remove(findB("4"));
>>              >               getEntityManager().remove(a1);
>>              >               if ((!getEntityManager().contains(a1))) {
>>              >                  pass =true;
>>              >               }
>>              >
>>              >               getEntityTransaction().commit();
>>              >            }catch (Exception fe) {
>>              >               logErr("Unexpected exception caught trying to remove entity instance :",
>>              >                     fe);
>>              >            }
>>              >         }else {
>>              >            logErr("Test failed");
>>              >            pass =false;
>>              >         }
>>              >
>>              >      }catch (Exception e) {
>>              >         logErr("Unexpected exception occurred",e);
>>              >      }
>>              >
>>              >      if (!pass) {
>>              >         throw new Exception("cascadeAllMXMTest4 failed");
>>              >      }
>>              > }
>>              >
>>              > [4] java.lang.IllegalArgumentException: Entity must be managed to call remove: ee.jakarta.tck.persistence.core.entitytest.cascadeall.manyXmany.B@3e7a7f36, try merging the detached and try the remove again.
>>              >
>>              > _______________________________________________
>>              > eclipselink-dev mailing list
>>              > eclipselink-dev@xxxxxxxxxxx <mailto:eclipselink-dev@xxxxxxxxxxx>
>>              > To unsubscribe from this list, visit https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/eclipselink-dev__;!!ACWV5N9M2RV99hQ!MQO-WF9LmxKIjXDBKiucXxT3SIKSEX-
>>             Eom3pBhkYFlpGQDOPCjbOTv0Nd-3diVxmE9eWNLlL78rpiTEjXyJ_gd04GWUGdEY$ <https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/eclipselink-dev__;!!ACWV5N9M2RV99hQ!MQO-WF9LmxKIjXDBKiucXxT3SIKSEX-
>>             Eom3pBhkYFlpGQDOPCjbOTv0Nd-3diVxmE9eWNLlL78rpiTEjXyJ_gd04GWUGdEY$>
>>
>
> _______________________________________________
> eclipselink-dev mailing list
> eclipselink-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/eclipselink-dev__;!!ACWV5N9M2RV99hQ!N6pS1Wewk_3-m5O-
> xvhUYXBz_n3tqKLyIOTZk6oW2ofnjdEW2XZtfOfJwLpDuEUykcV33JqaDarUFucJalpsJBTucsjHNKE$

Back to the top