You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/07/04 14:03:09 UTC

[causeway] branch 3514-JDO.callback.fixes updated: CAUSEWAY-3514: cleaning up

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 3514-JDO.callback.fixes
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/3514-JDO.callback.fixes by this push:
     new 875ffe0be1 CAUSEWAY-3514: cleaning up
875ffe0be1 is described below

commit 875ffe0be15f04e9dad9727af401040375c83201
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jul 4 16:03:04 2023 +0200

    CAUSEWAY-3514: cleaning up
---
 .../changetracking/JdoLifecycleListener.java         | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
index 7700ec7702..563deba283 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.java
@@ -88,22 +88,18 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
     public void postLoad(final InstanceLifecycleEvent event) {
         log.debug("postLoad {}", ()->_Utils.debug(event));
 
-        System.err.printf("postLoad %s%n", "BEGIN {loaded}");
-
         final Persistable pojo = _Utils.persistableFor(event);
         val entity = adaptEntity(pojo);
-        //TODO only emit if new to session (based on OID)
-        objectLifecyclePublisher.onPostLoad(entity);
 
-        System.err.printf("postLoad %s%n", "END");
+        // it seems JDO only calls this once per transaction and entity
+        // so no need to keep track of OIDs that had already been loaded
+        objectLifecyclePublisher.onPostLoad(entity);
     }
 
     @Override
     public void preStore(final InstanceLifecycleEvent event) {
         log.debug("preStore {}", ()->_Utils.debug(event));
 
-        System.err.printf("preStore %s%n", "BEGIN {persisting, updating}");
-
         final Persistable pojo = _Utils.persistableFor(event);
         val isInserting = isInserting(pojo); // check before adapting
         val entity = adaptEntity(pojo);
@@ -119,16 +115,12 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
             // not here, using preDirty for that instead
             //objectLifecyclePublisher.onPreUpdate(entity, /*propertyChangeRecordSupplier*/ null);
         }
-
-        System.err.printf("preStore %s%n", "END");
     }
 
     @Override
     public void postStore(final InstanceLifecycleEvent event) {
         log.debug("postStore {}", ()->_Utils.debug(event));
 
-        System.err.printf("postStore %s%n", "BEGIN {persisted, updated}");
-
         final Persistable pojo = _Utils.persistableFor(event);
         val isInserting = isInserting(pojo); // check before adapting
 
@@ -144,8 +136,6 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
             // (can't be done here, as the enlist requires to capture the 'before' values)
             objectLifecyclePublisher.onPostUpdate(entity);
         }
-
-        System.err.printf("postStore %s%n", "END");
     }
 
     @Override
@@ -155,8 +145,6 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
         final Persistable pojo = _Utils.persistableFor(event);
         final Runnable doPreDirty = ()->doPreDirty(pojo);
 
-        System.err.printf("preDirty %s%n", "BEGIN {updating}");
-
         // [CAUSEWAY-3126] pre-dirty nested loop prevention,
         // assuming we can cast the DN StateManager to the custom one as provided by the framework
         DnStateManagerForCauseway.extractFrom(pojo).ifPresentOrElse(
@@ -164,8 +152,6 @@ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLif
                     stateManager.acquirePreDirtyPropagationLock(pojo.dnGetObjectId())
                     .ifPresent(lock->lock.releaseAfter(doPreDirty)),
                 doPreDirty);
-
-        System.err.printf("preDirty %s%n", "END");
     }
 
     /**