You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2018/11/09 14:51:57 UTC

[04/21] wicket git commit: WICKET-6607 set cglib callback directly

WICKET-6607 set cglib callback directly

so it is already set in case the page is serialized on another thread


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/06957dc3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/06957dc3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/06957dc3

Branch: refs/heads/WICKET-6563
Commit: 06957dc37a6d370dd58f7d06830bda06c8c7e8dc
Parents: 1a749e2
Author: Sven Meier <sv...@apache.org>
Authored: Sat Nov 3 09:47:09 2018 +0100
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Nov 3 09:48:05 2018 +0100

----------------------------------------------------------------------
 .../wicket/proxy/LazyInitProxyFactory.java      |  9 ++++-----
 .../proxy/objenesis/ObjenesisProxyFactory.java  | 20 +++++++++++++-------
 2 files changed, 17 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/06957dc3/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
----------------------------------------------------------------------
diff --git a/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java b/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
index c3373cc..ccc7769 100644
--- a/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
+++ b/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
@@ -167,13 +167,12 @@ public class LazyInitProxyFactory
 			}
 
 		}
+		else if (IS_OBJENESIS_AVAILABLE && !hasNoArgConstructor(type))
+		{
+			return ObjenesisProxyFactory.createProxy(type, locator, WicketNamingPolicy.INSTANCE);
+		}
 		else
 		{
-			if (IS_OBJENESIS_AVAILABLE && !hasNoArgConstructor(type))
-			{
-				return ObjenesisProxyFactory.createProxy(type, locator, WicketNamingPolicy.INSTANCE);
-			}
-
 			CGLibInterceptor handler = new CGLibInterceptor(type, locator);
 
 			Callback[] callbacks = new Callback[2];

http://git-wip-us.apache.org/repos/asf/wicket/blob/06957dc3/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
----------------------------------------------------------------------
diff --git a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
index 041faaf..730da6b 100644
--- a/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
+++ b/wicket-ioc/src/main/java/org/apache/wicket/proxy/objenesis/ObjenesisProxyFactory.java
@@ -16,15 +16,17 @@
  */
 package org.apache.wicket.proxy.objenesis;
 
-import net.sf.cglib.proxy.Callback;
-import net.sf.cglib.proxy.Enhancer;
-import net.sf.cglib.core.NamingPolicy;
+import java.io.Serializable;
+
 import org.apache.wicket.proxy.ILazyInitProxy;
 import org.apache.wicket.proxy.IProxyTargetLocator;
 import org.apache.wicket.proxy.LazyInitProxyFactory.IWriteReplace;
 import org.objenesis.ObjenesisStd;
 
-import java.io.Serializable;
+import net.sf.cglib.core.NamingPolicy;
+import net.sf.cglib.proxy.Callback;
+import net.sf.cglib.proxy.Enhancer;
+import net.sf.cglib.proxy.Factory;
 
 public class ObjenesisProxyFactory
 {
@@ -39,9 +41,13 @@ public class ObjenesisProxyFactory
 		e.setSuperclass(type);
 		e.setCallbackType(handler.getClass());
 		e.setNamingPolicy(namingPolicy);
-
 		Class<?> proxyClass = e.createClass();
-		Enhancer.registerCallbacks(proxyClass, new Callback[]{handler});
-		return OBJENESIS.newInstance(proxyClass);
+		
+		Object instance = OBJENESIS.newInstance(proxyClass);
+
+		// set callbacks directly (WICKET-6607) 
+		((Factory) instance).setCallbacks(new Callback[]{handler});
+		
+		return instance;
 	}
 }