You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/01/02 07:56:50 UTC

[isis] branch 2033-Spring_Data_Integration updated: ISIS-2033: house keeping

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

ahuber pushed a commit to branch 2033-Spring_Data_Integration
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2033-Spring_Data_Integration by this push:
     new 7557c24  ISIS-2033: house keeping
7557c24 is described below

commit 7557c2443b8e2ef63fba1d73d33ea3c3908b95f8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Jan 2 08:56:34 2021 +0100

    ISIS-2033: house keeping
---
 .../interaction/session/InteractionSession.java    |  4 +--
 .../ApplicationLayerAwareTransactionManager.java   |  2 ++
 .../jdo/applib/services/IsisJdoSupport.java        |  2 +-
 .../mixins/Persistable_downloadJdoMetadata.java    |  2 +-
 .../integration/jdosupport/IsisJdoSupportDN5.java  | 33 +++++++++-------------
 .../lifecycles/JdoPersistenceLifecycleService.java |  1 -
 .../services/LightweightJdoSupport.java            | 20 ++++++-------
 .../jdo/metamodel/menu/JdoMetamodelMenu.java       |  2 +-
 .../util/interaction/InteractionBoundaryProbe.java |  2 +-
 .../JdoSpringTransactionScopeListenerTest.java     | 16 ++++++-----
 .../applib/teardown/TeardownFixtureAbstract.java   |  6 ++--
 .../ajaxtable/PrototypingMessageProvider.java      |  4 +--
 12 files changed, 45 insertions(+), 49 deletions(-)

diff --git a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionSession.java b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionSession.java
index d44e7e8..391b2f2 100644
--- a/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionSession.java
+++ b/core/interaction/src/main/java/org/apache/isis/core/interaction/session/InteractionSession.java
@@ -51,7 +51,7 @@ import lombok.Setter;
  */
 public class InteractionSession {
 
-    @Getter private final long lifecycleStartedAtSystemNanos;
+    @Getter private final long startedAtSystemNanos;
     
     /**
      * The {@link MessageBroker} that holds messages for this session.
@@ -67,7 +67,7 @@ public class InteractionSession {
             @NonNull final MetaModelContext mmc) {
 
         this.metaModelContext = mmc;
-        this.lifecycleStartedAtSystemNanos = System.nanoTime(); // used to measure time periods, so not using ClockService here
+        this.startedAtSystemNanos = System.nanoTime(); // used to measure time periods, so not using ClockService here
         this.interaction = new IsisInteraction(UUID.randomUUID());
     }
 
diff --git a/core/transaction/src/main/java/org/apache/isis/core/transaction/manager/ApplicationLayerAwareTransactionManager.java b/core/transaction/src/main/java/org/apache/isis/core/transaction/manager/ApplicationLayerAwareTransactionManager.java
index b1d4b15..f155d82 100644
--- a/core/transaction/src/main/java/org/apache/isis/core/transaction/manager/ApplicationLayerAwareTransactionManager.java
+++ b/core/transaction/src/main/java/org/apache/isis/core/transaction/manager/ApplicationLayerAwareTransactionManager.java
@@ -41,6 +41,8 @@ implements PlatformTransactionManager {
     @Override
     public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException {
        val txStatus = txManager.getTransaction(definition);
+       
+       // don't post events when participating in existing transaction
        if(txStatus.isNewTransaction()) {
            eventBusService.post(new TransactionBeginEvent(txStatus));
        }
diff --git a/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisJdoSupport.java b/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisJdoSupport.java
index 3a6ff62..09a7f8f 100644
--- a/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisJdoSupport.java
+++ b/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisJdoSupport.java
@@ -63,7 +63,7 @@ public interface IsisJdoSupport {
     void ensureLoaded(Collection<?> collectionOfDomainObjects);
 
     @Programmatic
-    PersistenceManager getJdoPersistenceManager();
+    PersistenceManager getPersistenceManager();
 
     @Programmatic
     List<Map<String, Object>> executeSql(String sql);
diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
index f639e88..2fb5218 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.java
@@ -77,7 +77,7 @@ public class Persistable_downloadJdoMetadata {
     }
 
     private PersistenceManagerFactory getPersistenceManagerFactory() {
-        return jdoSupport.getJdoPersistenceManager().getPersistenceManagerFactory();
+        return jdoSupport.getPersistenceManager().getPersistenceManagerFactory();
     }
 
 }
diff --git a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/jdosupport/IsisJdoSupportDN5.java b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/jdosupport/IsisJdoSupportDN5.java
index 8de82ad..c1db806 100644
--- a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/jdosupport/IsisJdoSupportDN5.java
+++ b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/jdosupport/IsisJdoSupportDN5.java
@@ -47,11 +47,10 @@ import org.apache.isis.applib.FatalException;
 import org.apache.isis.applib.annotation.OrderPrecedence;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.core.interaction.session.InteractionTracker;
 import org.apache.isis.core.metamodel.adapter.oid.ObjectPersistenceException;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport_v3_2;
-import org.apache.isis.persistence.jdo.integration.persistence.JdoPersistenceSession;
+import org.apache.isis.persistence.jdo.spring.integration.TransactionAwarePersistenceManagerFactoryProxy;
 
 import lombok.val;
 
@@ -67,10 +66,15 @@ import lombok.val;
 @Qualifier("DN5")
 public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
-    @Inject private InteractionTracker isisInteractionTracker;
+    @Inject private TransactionAwarePersistenceManagerFactoryProxy pmf;
     @Inject private MetaModelContext mmc;
     
     @Override
+    public PersistenceManager getPersistenceManager() {
+        return pmf.getPersistenceManager();
+    }
+    
+    @Override
     public <T> T refresh(final T domainObject) {
         val objectManager = mmc.getObjectManager();
         val adapter = mmc.getObjectManager().adapt(domainObject);
@@ -80,7 +84,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
     @Override
     public void ensureLoaded(final Collection<?> domainObjects) {
-        getPersistenceSession().getPersistenceManager().retrieveAll(domainObjects);
+        getPersistenceManager().retrieveAll(domainObjects);
     }
 
     // //////////////////////////////////////
@@ -88,7 +92,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
     @Override
     public List<Map<String, Object>> executeSql(final String sql) {
-        final JDOConnection dataStoreConnection = getJdoPersistenceManager().getDataStoreConnection();
+        final JDOConnection dataStoreConnection = getPersistenceManager().getDataStoreConnection();
         try {
             final Object connectionObj = dataStoreConnection.getNativeConnection();
             if(!(connectionObj instanceof java.sql.Connection)) {
@@ -104,7 +108,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
     @Override
     public Integer executeUpdate(final String sql) {
-        final JDOConnection dataStoreConnection = getJdoPersistenceManager().getDataStoreConnection();
+        final JDOConnection dataStoreConnection = getPersistenceManager().getDataStoreConnection();
         try {
             final Object connectionObj = dataStoreConnection.getNativeConnection();
             if(!(connectionObj instanceof java.sql.Connection)) {
@@ -158,11 +162,11 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
     @Override
     public void deleteAll(final Class<?>... pcClasses) {
         for (final Class<?> pcClass : pcClasses) {
-            final Extent<?> extent = getJdoPersistenceManager().getExtent(pcClass);
+            final Extent<?> extent = getPersistenceManager().getExtent(pcClass);
             final List<Object> instances = stream(extent).collect(Collectors.toList());
 
             try {
-                getJdoPersistenceManager().deletePersistentAll(instances);
+                getPersistenceManager().deletePersistentAll(instances);
             } catch (final Exception ex) {
                 throw new FatalException(ex);
             }
@@ -194,7 +198,7 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
 
     @Override
     public <T> JDOQLTypedQuery<T> newTypesafeQuery(Class<T> cls) {
-        return getJdoPersistenceManager().newJDOQLTypedQuery(cls);
+        return getPersistenceManager().newJDOQLTypedQuery(cls);
     }
 
     private static <T> List<T> executeListAndClose(final JDOQLTypedQuery<T> query) {
@@ -216,16 +220,5 @@ public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
         }
     }
 
-    // //////////////////////////////////////
-
-    protected JdoPersistenceSession getPersistenceSession() {
-        return isisInteractionTracker.currentInteractionSession()
-                .map(interaction->interaction.getAttribute(JdoPersistenceSession.class))
-                .orElse(null);
-    }
 
-    @Override
-    public PersistenceManager getJdoPersistenceManager() {
-        return getPersistenceSession().getPersistenceManager();
-    }
 }
diff --git a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/lifecycles/JdoPersistenceLifecycleService.java b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/lifecycles/JdoPersistenceLifecycleService.java
index 3dd6880..9d21492 100644
--- a/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/lifecycles/JdoPersistenceLifecycleService.java
+++ b/persistence/jdo/integration/src/main/java/org/apache/isis/persistence/jdo/integration/lifecycles/JdoPersistenceLifecycleService.java
@@ -56,7 +56,6 @@ import lombok.extern.log4j.Log4j2;
 public class JdoPersistenceLifecycleService {
 
     @Inject MetaModelContext metaModelContext;
-    //@Inject LocalPersistenceManagerFactoryBean localPmfBean;
     @Inject TransactionAwarePersistenceManagerFactoryProxy txAwarePmfProxy;
     
     @Named("jdo-platform-transaction-manager")
diff --git a/persistence/jdo/lightweight/src/main/java/org/apache/isis/persistence/jdo/lightweight/services/LightweightJdoSupport.java b/persistence/jdo/lightweight/src/main/java/org/apache/isis/persistence/jdo/lightweight/services/LightweightJdoSupport.java
index c79c29f..ecc1f9f 100644
--- a/persistence/jdo/lightweight/src/main/java/org/apache/isis/persistence/jdo/lightweight/services/LightweightJdoSupport.java
+++ b/persistence/jdo/lightweight/src/main/java/org/apache/isis/persistence/jdo/lightweight/services/LightweightJdoSupport.java
@@ -1,5 +1,7 @@
 package org.apache.isis.persistence.jdo.lightweight.services;
 
+import static org.apache.isis.commons.internal.base._NullSafe.stream;
+
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -26,8 +28,6 @@ import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.core.metamodel.adapter.oid.ObjectPersistenceException;
 import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport_v3_2;
 
-import static org.apache.isis.commons.internal.base._NullSafe.stream;
-
 @Service
 @Named("isisJdoLightweight.LightweightJdoSupport")
 public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
@@ -37,14 +37,14 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
     
     @Override
     public <T> T refresh(final T domainObject) {
-        getJdoPersistenceManager().refresh(domainObject);
+        getPersistenceManager().refresh(domainObject);
         return domainObject;
     }
 
 
     @Override
     public void ensureLoaded(final Collection<?> domainObjects) {
-        getJdoPersistenceManager().retrieveAll(domainObjects);
+        getPersistenceManager().retrieveAll(domainObjects);
     }
 
     // //////////////////////////////////////
@@ -52,7 +52,7 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
 
     @Override
     public List<Map<String, Object>> executeSql(final String sql) {
-        final JDOConnection dataStoreConnection = getJdoPersistenceManager().getDataStoreConnection();
+        final JDOConnection dataStoreConnection = getPersistenceManager().getDataStoreConnection();
         try {
             final Object connectionObj = dataStoreConnection.getNativeConnection();
             if(!(connectionObj instanceof java.sql.Connection)) {
@@ -68,7 +68,7 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
 
     @Override
     public Integer executeUpdate(final String sql) {
-        final JDOConnection dataStoreConnection = getJdoPersistenceManager().getDataStoreConnection();
+        final JDOConnection dataStoreConnection = getPersistenceManager().getDataStoreConnection();
         try {
             final Object connectionObj = dataStoreConnection.getNativeConnection();
             if(!(connectionObj instanceof java.sql.Connection)) {
@@ -122,11 +122,11 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
     @Override
     public void deleteAll(final Class<?>... pcClasses) {
         for (final Class<?> pcClass : pcClasses) {
-            final Extent<?> extent = getJdoPersistenceManager().getExtent(pcClass);
+            final Extent<?> extent = getPersistenceManager().getExtent(pcClass);
             final List<Object> instances = stream(extent).collect(Collectors.toList());
 
             try {
-                getJdoPersistenceManager().deletePersistentAll(instances);
+                getPersistenceManager().deletePersistentAll(instances);
             } catch (final Exception ex) {
                 throw new FatalException(ex);
             }
@@ -158,7 +158,7 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
 
     @Override
     public <T> JDOQLTypedQuery<T> newTypesafeQuery(Class<T> cls) {
-        return getJdoPersistenceManager().newJDOQLTypedQuery(cls);
+        return getPersistenceManager().newJDOQLTypedQuery(cls);
     }
 
     private static <T> List<T> executeListAndClose(final JDOQLTypedQuery<T> query) {
@@ -183,7 +183,7 @@ public class LightweightJdoSupport implements IsisJdoSupport_v3_2 {
     // //////////////////////////////////////
 
     @Override
-    public PersistenceManager getJdoPersistenceManager() {
+    public PersistenceManager getPersistenceManager() {
         return pmf.getPersistenceManager();
     }
 
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
index 1a48fcc..bceeb37 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/menu/JdoMetamodelMenu.java
@@ -97,7 +97,7 @@ public class JdoMetamodelMenu {
     }
 
     private PersistenceManagerFactory getPersistenceManagerFactory() {
-        return jdoSupport.getJdoPersistenceManager().getPersistenceManagerFactory();
+        return jdoSupport.getPersistenceManager().getPersistenceManagerFactory();
     }
 
 }
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/InteractionBoundaryProbe.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/InteractionBoundaryProbe.java
index a19f465..a7d1432 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/InteractionBoundaryProbe.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/interaction/InteractionBoundaryProbe.java
@@ -76,7 +76,7 @@ public class InteractionBoundaryProbe {
 
     /** TRANSACTION END BOUNDARY */
     @EventListener(TransactionEndingEvent.class)
-    public void onPreCommit(TransactionEndingEvent event) {
+    public void onTransactionEnding(TransactionEndingEvent event) {
         kvStoreForTesting.incrementCounter(InteractionBoundaryProbe.class, "txEnding");
     }
     
diff --git a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/transactions/jdo/spring/JdoSpringTransactionScopeListenerTest.java b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/transactions/jdo/spring/JdoSpringTransactionScopeListenerTest.java
index 845db60..9457775 100644
--- a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/transactions/jdo/spring/JdoSpringTransactionScopeListenerTest.java
+++ b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/transactions/jdo/spring/JdoSpringTransactionScopeListenerTest.java
@@ -26,7 +26,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
-import org.springframework.transaction.annotation.Transactional;
 
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.repository.RepositoryService;
@@ -50,7 +49,7 @@ import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScripts;
                 "logging.level.org.apache.isis.core.interaction.scope.IsisInteractionScope=DEBUG",
         })
 @TestPropertySource(IsisPresets.UseLog4j2Test)
-@Transactional
+//@Transactional
 /**
  * With this test we manage IsisInteractions ourselves. (not sub-classing IsisIntegrationTestAbstract)
  */
@@ -75,11 +74,11 @@ class JdoSpringTransactionScopeListenerTest {
     @BeforeEach
     void setUp() {
         
-        // request a InteractionBoundaryProbe for the current interaction
-        serviceRegistry.lookupServiceElseFail(InteractionBoundaryProbe.class);
-        
         // new IsisInteractionScope with a new transaction (#1)
         isisInteractionFactory.runAnonymous(()->{
+            
+            // request an InteractionBoundaryProbe for the current interaction
+            serviceRegistry.lookupServiceElseFail(InteractionBoundaryProbe.class);
         
             // cleanup
             fixtureScripts.runPersona(JdoTestDomainPersona.PurgeAll);
@@ -94,6 +93,9 @@ class JdoSpringTransactionScopeListenerTest {
         // new IsisInteractionScope
         isisInteractionFactory.runAnonymous(()->{
             
+            // request an InteractionBoundaryProbe for the current interaction
+            serviceRegistry.lookupServiceElseFail(InteractionBoundaryProbe.class);
+            
             // expected pre condition
             // new transaction (#2)
             assertEquals(0, repository.allInstances(JdoBook.class).size());
@@ -113,8 +115,8 @@ class JdoSpringTransactionScopeListenerTest {
         
         assertEquals(2, InteractionBoundaryProbe.totalInteractionsStarted(kvStoreForTesting));
         assertEquals(2, InteractionBoundaryProbe.totalInteractionsEnded(kvStoreForTesting));
-        assertEquals(4, InteractionBoundaryProbe.totalTransactionsStarted(kvStoreForTesting));
-        assertEquals(4, InteractionBoundaryProbe.totalTransactionsEnded(kvStoreForTesting));
+        assertEquals(1, InteractionBoundaryProbe.totalTransactionsStarted(kvStoreForTesting));
+        assertEquals(1, InteractionBoundaryProbe.totalTransactionsEnded(kvStoreForTesting));
 
     }
     
diff --git a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/teardown/TeardownFixtureAbstract.java b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/teardown/TeardownFixtureAbstract.java
index 05f7cde..796e399 100644
--- a/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/teardown/TeardownFixtureAbstract.java
+++ b/testing/fixtures/applib/src/main/java/org/apache/isis/testing/fixtures/applib/teardown/TeardownFixtureAbstract.java
@@ -28,8 +28,8 @@ import javax.jdo.metadata.TypeMetadata;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.commons.internal.base._Strings;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
 import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport;
+import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
 
 @Programmatic
 public abstract class TeardownFixtureAbstract extends FixtureScript {
@@ -41,7 +41,7 @@ public abstract class TeardownFixtureAbstract extends FixtureScript {
 
         final String value = discriminatorValueOf(cls);
         if(value == null) {
-            final TypeMetadata metadata = isisJdoSupport.getJdoPersistenceManager()
+            final TypeMetadata metadata = isisJdoSupport.getPersistenceManager()
                             .getPersistenceManagerFactory().getMetadata(cls.getName());
             if(metadata == null) {
                 // fall-back
@@ -173,7 +173,7 @@ public abstract class TeardownFixtureAbstract extends FixtureScript {
     }
 
     private PersistenceManagerFactory getPersistenceManagerFactory() {
-        return isisJdoSupport.getJdoPersistenceManager().getPersistenceManagerFactory();
+        return isisJdoSupport.getPersistenceManager().getPersistenceManagerFactory();
     }
 
     @Inject private IsisJdoSupport isisJdoSupport;
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
index 9271d3e..925d974 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/PrototypingMessageProvider.java
@@ -42,7 +42,7 @@ class PrototypingMessageProvider {
     public static String getTookTimingMessageModel() {
         return isPrototyping()
                 ? getTookTimingMessage()
-                        : "";
+                : "";
     }
 
     // -- HELPER
@@ -61,7 +61,7 @@ class PrototypingMessageProvider {
 
         commonContext().getInteractionTracker().currentInteractionSession()
         .ifPresent(interaction->{
-            val stopWatch = _Timing.atSystemNanos(interaction.getLifecycleStartedAtSystemNanos());    
+            val stopWatch = _Timing.atSystemNanos(interaction.getStartedAtSystemNanos());    
             tookTimingMessage.append(String.format(Locale.US, "... took %.2f seconds", stopWatch.getSeconds()));
         });