Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-1505

Callbacks: POST_UPDATE is called on updated removed object, instead of POST_REMOVE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0.1, 3.1M1
    • 3.0.2, 3.1M1
    • None
    • None

    Description

      Here is a test demonstrating the problem:

      diff --git a/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java b/framework/cayenne-jdk1.5-unpu
      index cab44ec..c7d56e9 100644
      — a/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java
      +++ b/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java
      @@ -219,6 +219,42 @@ public class DataDomainCallbacksTest extends CayenneCase

      { assertTrue(a1.isPostRemoved()); assertSame(a1, listener2.getPublicCalledbackEntity()); }

      +
      + public void testPostRemove_Updated()

      { + + LifecycleCallbackRegistry registry = getDomain() + .getEntityResolver() + .getCallbackRegistry(); + + ObjectContext context = createDataContext(); + + Artist a1 = context.newObject(Artist.class); + a1.setArtistName("XX"); + context.commitChanges(); + + MockCallingBackListener listener1 = new MockCallingBackListener(); + registry.addListener( + LifecycleEvent.POST_REMOVE, + Artist.class, + listener1, + "publicCallback"); + + MockCallingBackListener listener2 = new MockCallingBackListener(); + registry.addListener( + LifecycleEvent.POST_UPDATE, + Artist.class, + listener2, + "publicCallback"); + + + // change before removing + a1.setArtistName("YY"); + context.deleteObject(a1); + context.commitChanges(); + + assertNull(listener2.getPublicCalledbackEntity()); + assertSame(a1, listener1.getPublicCalledbackEntity()); + }

      Attachments

        Activity

          People

            andrus Andrus Adamchik
            andrus Andrus Adamchik
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: