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?

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> 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> wrote:


On Fri, Apr 25, 2025 at 5:44 AM Radek Felcman <radek.felcman@xxxxxxxxxx> wrote:
Hello Scott,

        I'll re-verify it when our Jenkins instance https://ci.eclipse.org/eclipselink/ at Eclipse CI will be available (TCK job is there). It seems, that Eclipse CI https://ci.eclipse.org/ 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://github.com/eclipse-ee4j/eclipselink/blob/master/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java#L3729 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://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 <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://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 <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
> To unsubscribe from this list, visit https://urldefense.com/v3/__https://www.eclipse.org/mailman/listinfo/eclipselink-dev__;!!ACWV5N9M2RV99hQ!MQO-WF9LmxKIjXDBKiucXxT3SIKSEX-Eom3pBhkYFlpGQDOPCjbOTv0Nd-3diVxmE9eWNLlL78rpiTEjXyJ_gd04GWUGdEY$


Back to the top