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

danhaywood pushed a commit to branch CAUSEWAY-3883
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3883 by this push:
     new 98752b815e4 CAUSEWAY-3883: removes debugging statements
98752b815e4 is described below

commit 98752b815e4fd77fcfa5c7ce1bb56972ddfbd640
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Apr 8 20:07:33 2025 +0100

    CAUSEWAY-3883: removes debugging statements
---
 .../services/ProxyFactoryServiceByteBuddy.java     | 49 ++++++++++------------
 .../wrapper/proxy/ProxyCreator.java                |  7 +---
 .../jdo/WrapperFactoryMetaspaceMemoryLeakTest.java | 28 ++++++-------
 3 files changed, 36 insertions(+), 48 deletions(-)

diff --git 
a/core/codegen-bytebuddy/src/main/java/org/apache/causeway/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
 
b/core/codegen-bytebuddy/src/main/java/org/apache/causeway/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
index a345698cf76..0ee892e07fc 100644
--- 
a/core/codegen-bytebuddy/src/main/java/org/apache/causeway/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
+++ 
b/core/codegen-bytebuddy/src/main/java/org/apache/causeway/core/codegen/bytebuddy/services/ProxyFactoryServiceByteBuddy.java
@@ -18,6 +18,8 @@
  */
 package org.apache.causeway.core.codegen.bytebuddy.services;
 
+import java.io.IOException;
+import java.io.UncheckedIOException;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.InvocationTargetException;
@@ -64,27 +66,25 @@ public <T> _ProxyFactory<T> factory(
 
         val objenesis = new ObjenesisStd();
 
-        final Function<InvocationHandler, Class<? extends T>> 
proxyClassFactory = new Function<InvocationHandler, Class<? extends T>>() {
+        final Function<InvocationHandler, Class<? extends T>> 
proxyClassFactory = new Function<>() {
+
             @Override
             public Class<? extends T> apply(InvocationHandler handler) {
-//                return (Class) 
proxyClassByInvocationHandler.computeIfAbsent(handler, ih -> createClass(ih));
-                return createClass(handler);
+                return (Class<? extends T>) 
proxyClassByInvocationHandler.computeIfAbsent(handler, this::createClass);
             }
 
             private Class<? extends T> createClass(InvocationHandler handler) {
-                ImplementationDefinition<T> tImplementationDefinition =
-                        MemoryUsage.measureMetaspace("handler.nextProxyDef", 
() -> nextProxyDef(base, interfaces));
-                final var typeDefn =
-                        MemoryUsage.measureMetaspace("handler.intercept   ", 
() -> tImplementationDefinition.intercept(InvocationHandlerAdapter.of(handler)
-                        ));
-                final var typeDefnWithField = 
typeDefn.defineField("__causeway_wrapperInvocationContext", Object.class, 
Modifier.PUBLIC);
-                DynamicType.Unloaded<T> make =
-                        MemoryUsage.measureMetaspace("handler.make        ", 
() -> typeDefnWithField.make());
-                DynamicType.Loaded<T> load =
-                        MemoryUsage.measureMetaspace("handler.load        ", 
() -> make.load(_Context.getDefaultClassLoader(), 
strategyAdvisor.getSuitableStrategy(base)));
-                Class<? extends T> loaded =
-                        MemoryUsage.measureMetaspace("handler.getLoaded   ", 
() -> load.getLoaded());
-                return loaded;
+                try (final var unloaded = nextProxyDef(base, interfaces)
+                        .intercept(InvocationHandlerAdapter.of(handler))
+                        .defineField("__causeway_wrapperInvocationContext", 
Object.class, Modifier.PUBLIC)
+                        .make()
+                ) {
+                    return unloaded
+                            .load(_Context.getDefaultClassLoader(), 
strategyAdvisor.getSuitableStrategy(base))
+                            .getLoaded();
+                } catch (IOException e) {
+                    throw new UncheckedIOException("Failed to generate proxy 
class", e);
+                }
             }
         };
 
@@ -94,7 +94,6 @@ private Class<? extends T> createClass(InvocationHandler 
handler) {
             public T createInstance(final InvocationHandler handler, final 
boolean initialize) {
 
                 try {
-
                     if(initialize) {
                         ensureSameSize(constructorArgTypes, null);
                         return _Casts.uncheckedCast( 
createUsingConstructor(handler, null) );
@@ -126,23 +125,17 @@ public T createInstance(final InvocationHandler handler, 
final Object[] construc
             // -- HELPER (create w/o initialize)
 
             private Object createNotUsingConstructor(final InvocationHandler 
invocationHandler) {
-                final Class<? extends T> proxyClass =
-                        
MemoryUsage.measureMetaspace("proxyClassFactory.apply", () -> 
proxyClassFactory.apply(invocationHandler));
-                final Object object =
-                        MemoryUsage.measureMetaspace("objenesis.newInstance", 
() -> objenesis.newInstance(proxyClass));
-                return object;
+                final Class<? extends T> proxyClass = 
proxyClassFactory.apply(invocationHandler);
+                return objenesis.newInstance(proxyClass);
             }
 
             // -- HELPER (create with initialize)
 
             private Object createUsingConstructor(final InvocationHandler 
invocationHandler, @Nullable final Object[] constructorArgs)
                     throws InstantiationException, IllegalAccessException, 
IllegalArgumentException, InvocationTargetException, NoSuchMethodException, 
SecurityException {
-                final Class<? extends T> proxyClass =
-                        
MemoryUsage.measureMetaspace("proxyClassFactory.apply", () -> 
proxyClassFactory.apply(invocationHandler));
-                Constructor<? extends T> constructor =
-                        
MemoryUsage.measureMetaspace("proxyClass.getConstructor", () -> 
proxyClass.getConstructor(constructorArgTypes == null ? _Constants.emptyClasses 
: constructorArgTypes));
-                T t = MemoryUsage.measureMetaspace("proxyClass.newInstance", 
() -> constructor.newInstance(constructorArgs == null ? _Constants.emptyObjects 
: constructorArgs));;
-                return t;
+                final var proxyClass = 
proxyClassFactory.apply(invocationHandler);
+                final var constructor = 
proxyClass.getConstructor(constructorArgTypes == null ? _Constants.emptyClasses 
: constructorArgTypes);
+                return constructor.newInstance(constructorArgs == null ? 
_Constants.emptyObjects : constructorArgs);
             }
 
         };
diff --git 
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/proxy/ProxyCreator.java
 
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/proxy/ProxyCreator.java
index efe2ea6cb80..cf8dd15d183 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/proxy/ProxyCreator.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/proxy/ProxyCreator.java
@@ -56,11 +56,8 @@ public <T> T instantiateProxy(final Class<T> base, final 
DelegatingInvocationHan
                             _Arrays.combine(base, (Class<?>[]) new 
Class[]{WrappingObject.class}),
                             handler));
         } else {
-            final _ProxyFactory<T> proxyFactory =
-                    
MemoryUsage.measureMetaspace("proxyFactoryService.factory", () -> 
proxyFactoryService.factory(base, WrappingObject.class));
-            T instance =
-                    
MemoryUsage.measureMetaspace("proxyFactory.createInstance", () -> 
proxyFactory.createInstance(handler, false));
-            return instance;
+            final _ProxyFactory<T> proxyFactory = 
proxyFactoryService.factory(base, WrappingObject.class);
+            return proxyFactory.createInstance(handler, false);
         }
     }
 
diff --git 
a/regressiontests/persistence-jpa/src/test/java/org/apache/causeway/testdomain/wrapper/jdo/WrapperFactoryMetaspaceMemoryLeakTest.java
 
b/regressiontests/persistence-jpa/src/test/java/org/apache/causeway/testdomain/wrapper/jdo/WrapperFactoryMetaspaceMemoryLeakTest.java
index 9f350e15cec..f0ec2722319 100644
--- 
a/regressiontests/persistence-jpa/src/test/java/org/apache/causeway/testdomain/wrapper/jdo/WrapperFactoryMetaspaceMemoryLeakTest.java
+++ 
b/regressiontests/persistence-jpa/src/test/java/org/apache/causeway/testdomain/wrapper/jdo/WrapperFactoryMetaspaceMemoryLeakTest.java
@@ -72,19 +72,20 @@ void uninstallFixture() {
     }
 
     @Test
-    void testWrapper_waitingOnDomainEvent() {
+    void testWrapper_waitingOnDomainEvent() throws InterruptedException {
+
 // with caching
         MemoryUsage.measureMetaspace("whole thing", ()->{
-//            extracted(1, 1);     // 1,980 KB
-//            extracted(1, 2000);  // 3,794 KB
-//            extracted(20, 1);    // 2,468 KB
-//            extracted(20, 2000); // 3,818 KB
+//            extracted(1, 1);      // 1,980 KB
+//            extracted(1, 2000);   // 3,794 KB
+//            extracted(20, 1);     // 2,468 KB
+            extracted(20, 2000);    // 3,636 KB
 //
 // without caching
-//            extracted(1, 1);     // 2,114 KB
-//            extracted(1, 1000);  // 9,846 KB
-//            extracted(20, 1);     // 2,635 KB
-            extracted(20, 2000);  // 217,582 KB
+//            extracted(1, 1);      //   2,114 KB
+//            extracted(1, 1000);   //   9,846 KB
+//            extracted(20, 1);     //   2,635 KB
+//            extracted(20, 2000);  // 217,582 KB
         });
     }
 
@@ -93,15 +94,12 @@ private void extracted(int instances, int loops) {
             val inventoryManager = 
factoryService.viewModel(JpaInventoryManager.class);
 
             for (var j = 0; j< loops; j++) {
-                MemoryUsage.measureMetaspace("target #" + i + "." + j, ()->{
-                    List<JpaProduct> allProducts = 
wrapper.wrap(inventoryManager).getAllProducts();
-                    allProducts.forEach(product -> {
-                        System.out.println(product.getName());
-                    });
+                List<JpaProduct> allProducts = 
wrapper.wrap(inventoryManager).getAllProducts();
+                allProducts.forEach(product -> {
+                    String unused = product.getName();
                 });
             }
         }
-
     }
 }
 

Reply via email to