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;
}
}