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?
Scott
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$