You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/07/24 21:49:43 UTC
svn commit: r425160 -
/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Author: djencks
Date: Mon Jul 24 12:49:43 2006
New Revision: 425160
URL: http://svn.apache.org/viewvc?rev=425160&view=rev
Log:
GERONIMO-2204 do not forward finalize call to proxied object
Modified:
geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
URL: http://svn.apache.org/viewvc/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java?rev=425160&r1=425159&r2=425160&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java Mon Jul 24 12:49:43 2006
@@ -17,6 +17,7 @@
package org.apache.geronimo.kernel.basic;
import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -26,6 +27,8 @@
import net.sf.cglib.proxy.Callback;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
+import net.sf.cglib.proxy.NoOp;
+import net.sf.cglib.proxy.CallbackFilter;
import net.sf.cglib.reflect.FastClass;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -197,7 +200,8 @@
}
}
enhancer.setClassLoader(classLoader);
- enhancer.setCallbackType(MethodInterceptor.class);
+ enhancer.setCallbackFilter(new FinalizeCallbackFilter());
+ enhancer.setCallbackTypes(new Class[] {NoOp.class, MethodInterceptor.class});
enhancer.setUseFactory(false);
proxyType = enhancer.createClass();
fastClass = FastClass.create(proxyType);
@@ -208,7 +212,7 @@
Callback callback = getMethodInterceptor(proxyType, kernel, target);
- Enhancer.registerCallbacks(proxyType, new Callback[]{callback});
+ Enhancer.registerCallbacks(proxyType, new Callback[]{NoOp.INSTANCE, callback});
try {
Object proxy = fastClass.newInstance();
interceptors.put(proxy, callback);
@@ -225,6 +229,16 @@
throw new ProxyCreationException(e);
}
}
+ }
+ }
+
+ private static class FinalizeCallbackFilter implements CallbackFilter {
+
+ public int accept(Method method) {
+ if (method.getName().equals("finalize") && method.getParameterTypes().length == 0) {
+ return 0;
+ }
+ return 1;
}
}
Re: svn commit: r425160 - /geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Posted by Dain Sundstrom <da...@iq80.com>.
+1 to merge it
I suggest you look for other proxy creation code an make similar
patches.
-dain
On Jul 24, 2006, at 2:29 PM, David Jencks wrote:
>
> On Jul 24, 2006, at 4:44 PM, Jason Dillon wrote:
>
>> Should this be merged to trunk?
>
> yes, after I think about it for a few more minutes (and if anyone
> has comments they are very welcome)
>
> thanks
> david jencks
>
>>
>> --jason
>>
>>
>> On Jul 24, 2006, at 12:49 PM, djencks@apache.org wrote:
>>
>>> Author: djencks
>>> Date: Mon Jul 24 12:49:43 2006
>>> New Revision: 425160
>>>
>>> URL: http://svn.apache.org/viewvc?rev=425160&view=rev
>>> Log:
>>> GERONIMO-2204 do not forward finalize call to proxied object
>>>
>>> Modified:
>>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>>> geronimo/kernel/basic/BasicProxyManager.java
>>>
>>> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/
>>> apache/geronimo/kernel/basic/BasicProxyManager.java
>>> URL: http://svn.apache.org/viewvc/geronimo/branches/1.1/modules/
>>> kernel/src/java/org/apache/geronimo/kernel/basic/
>>> BasicProxyManager.java?rev=425160&r1=425159&r2=425160&view=diff
>>> ====================================================================
>>> ==========
>>> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>>> geronimo/kernel/basic/BasicProxyManager.java (original)
>>> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>>> geronimo/kernel/basic/BasicProxyManager.java Mon Jul 24 12:49:43
>>> 2006
>>> @@ -17,6 +17,7 @@
>>> package org.apache.geronimo.kernel.basic;
>>>
>>> import java.lang.reflect.InvocationTargetException;
>>> +import java.lang.reflect.Method;
>>> import java.util.ArrayList;
>>> import java.util.Collections;
>>> import java.util.List;
>>> @@ -26,6 +27,8 @@
>>> import net.sf.cglib.proxy.Callback;
>>> import net.sf.cglib.proxy.Enhancer;
>>> import net.sf.cglib.proxy.MethodInterceptor;
>>> +import net.sf.cglib.proxy.NoOp;
>>> +import net.sf.cglib.proxy.CallbackFilter;
>>> import net.sf.cglib.reflect.FastClass;
>>> import org.apache.commons.logging.Log;
>>> import org.apache.commons.logging.LogFactory;
>>> @@ -197,7 +200,8 @@
>>> }
>>> }
>>> enhancer.setClassLoader(classLoader);
>>> - enhancer.setCallbackType(MethodInterceptor.class);
>>> + enhancer.setCallbackFilter(new FinalizeCallbackFilter
>>> ());
>>> + enhancer.setCallbackTypes(new Class[] {NoOp.class,
>>> MethodInterceptor.class});
>>> enhancer.setUseFactory(false);
>>> proxyType = enhancer.createClass();
>>> fastClass = FastClass.create(proxyType);
>>> @@ -208,7 +212,7 @@
>>>
>>> Callback callback = getMethodInterceptor(proxyType,
>>> kernel, target);
>>>
>>> - Enhancer.registerCallbacks(proxyType, new Callback[]
>>> {callback});
>>> + Enhancer.registerCallbacks(proxyType, new Callback[]
>>> {NoOp.INSTANCE, callback});
>>> try {
>>> Object proxy = fastClass.newInstance();
>>> interceptors.put(proxy, callback);
>>> @@ -225,6 +229,16 @@
>>> throw new ProxyCreationException(e);
>>> }
>>> }
>>> + }
>>> + }
>>> +
>>> + private static class FinalizeCallbackFilter implements
>>> CallbackFilter {
>>> +
>>> + public int accept(Method method) {
>>> + if (method.getName().equals("finalize") &&
>>> method.getParameterTypes().length == 0) {
>>> + return 0;
>>> + }
>>> + return 1;
>>> }
>>> }
>>>
>>>
>>>
>>
Re: svn commit: r425160 - /geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Posted by David Jencks <da...@yahoo.com>.
On Jul 24, 2006, at 4:44 PM, Jason Dillon wrote:
> Should this be merged to trunk?
yes, after I think about it for a few more minutes (and if anyone has
comments they are very welcome)
thanks
david jencks
>
> --jason
>
>
> On Jul 24, 2006, at 12:49 PM, djencks@apache.org wrote:
>
>> Author: djencks
>> Date: Mon Jul 24 12:49:43 2006
>> New Revision: 425160
>>
>> URL: http://svn.apache.org/viewvc?rev=425160&view=rev
>> Log:
>> GERONIMO-2204 do not forward finalize call to proxied object
>>
>> Modified:
>> geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>> geronimo/kernel/basic/BasicProxyManager.java
>>
>> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>> geronimo/kernel/basic/BasicProxyManager.java
>> URL: http://svn.apache.org/viewvc/geronimo/branches/1.1/modules/
>> kernel/src/java/org/apache/geronimo/kernel/basic/
>> BasicProxyManager.java?rev=425160&r1=425159&r2=425160&view=diff
>> =====================================================================
>> =========
>> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>> geronimo/kernel/basic/BasicProxyManager.java (original)
>> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/
>> geronimo/kernel/basic/BasicProxyManager.java Mon Jul 24 12:49:43 2006
>> @@ -17,6 +17,7 @@
>> package org.apache.geronimo.kernel.basic;
>>
>> import java.lang.reflect.InvocationTargetException;
>> +import java.lang.reflect.Method;
>> import java.util.ArrayList;
>> import java.util.Collections;
>> import java.util.List;
>> @@ -26,6 +27,8 @@
>> import net.sf.cglib.proxy.Callback;
>> import net.sf.cglib.proxy.Enhancer;
>> import net.sf.cglib.proxy.MethodInterceptor;
>> +import net.sf.cglib.proxy.NoOp;
>> +import net.sf.cglib.proxy.CallbackFilter;
>> import net.sf.cglib.reflect.FastClass;
>> import org.apache.commons.logging.Log;
>> import org.apache.commons.logging.LogFactory;
>> @@ -197,7 +200,8 @@
>> }
>> }
>> enhancer.setClassLoader(classLoader);
>> - enhancer.setCallbackType(MethodInterceptor.class);
>> + enhancer.setCallbackFilter(new FinalizeCallbackFilter
>> ());
>> + enhancer.setCallbackTypes(new Class[] {NoOp.class,
>> MethodInterceptor.class});
>> enhancer.setUseFactory(false);
>> proxyType = enhancer.createClass();
>> fastClass = FastClass.create(proxyType);
>> @@ -208,7 +212,7 @@
>>
>> Callback callback = getMethodInterceptor(proxyType,
>> kernel, target);
>>
>> - Enhancer.registerCallbacks(proxyType, new Callback[]
>> {callback});
>> + Enhancer.registerCallbacks(proxyType, new Callback[]
>> {NoOp.INSTANCE, callback});
>> try {
>> Object proxy = fastClass.newInstance();
>> interceptors.put(proxy, callback);
>> @@ -225,6 +229,16 @@
>> throw new ProxyCreationException(e);
>> }
>> }
>> + }
>> + }
>> +
>> + private static class FinalizeCallbackFilter implements
>> CallbackFilter {
>> +
>> + public int accept(Method method) {
>> + if (method.getName().equals("finalize") &&
>> method.getParameterTypes().length == 0) {
>> + return 0;
>> + }
>> + return 1;
>> }
>> }
>>
>>
>>
>
Re: svn commit: r425160 - /geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Posted by Jason Dillon <ja...@planet57.com>.
Should this be merged to trunk?
--jason
On Jul 24, 2006, at 12:49 PM, djencks@apache.org wrote:
> Author: djencks
> Date: Mon Jul 24 12:49:43 2006
> New Revision: 425160
>
> URL: http://svn.apache.org/viewvc?rev=425160&view=rev
> Log:
> GERONIMO-2204 do not forward finalize call to proxied object
>
> Modified:
> geronimo/branches/1.1/modules/kernel/src/java/org/apache/
> geronimo/kernel/basic/BasicProxyManager.java
>
> Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/
> geronimo/kernel/basic/BasicProxyManager.java
> URL: http://svn.apache.org/viewvc/geronimo/branches/1.1/modules/
> kernel/src/java/org/apache/geronimo/kernel/basic/
> BasicProxyManager.java?rev=425160&r1=425159&r2=425160&view=diff
> ======================================================================
> ========
> --- geronimo/branches/1.1/modules/kernel/src/java/org/apache/
> geronimo/kernel/basic/BasicProxyManager.java (original)
> +++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/
> geronimo/kernel/basic/BasicProxyManager.java Mon Jul 24 12:49:43 2006
> @@ -17,6 +17,7 @@
> package org.apache.geronimo.kernel.basic;
>
> import java.lang.reflect.InvocationTargetException;
> +import java.lang.reflect.Method;
> import java.util.ArrayList;
> import java.util.Collections;
> import java.util.List;
> @@ -26,6 +27,8 @@
> import net.sf.cglib.proxy.Callback;
> import net.sf.cglib.proxy.Enhancer;
> import net.sf.cglib.proxy.MethodInterceptor;
> +import net.sf.cglib.proxy.NoOp;
> +import net.sf.cglib.proxy.CallbackFilter;
> import net.sf.cglib.reflect.FastClass;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> @@ -197,7 +200,8 @@
> }
> }
> enhancer.setClassLoader(classLoader);
> - enhancer.setCallbackType(MethodInterceptor.class);
> + enhancer.setCallbackFilter(new FinalizeCallbackFilter());
> + enhancer.setCallbackTypes(new Class[] {NoOp.class,
> MethodInterceptor.class});
> enhancer.setUseFactory(false);
> proxyType = enhancer.createClass();
> fastClass = FastClass.create(proxyType);
> @@ -208,7 +212,7 @@
>
> Callback callback = getMethodInterceptor(proxyType,
> kernel, target);
>
> - Enhancer.registerCallbacks(proxyType, new Callback[]
> {callback});
> + Enhancer.registerCallbacks(proxyType, new Callback[]
> {NoOp.INSTANCE, callback});
> try {
> Object proxy = fastClass.newInstance();
> interceptors.put(proxy, callback);
> @@ -225,6 +229,16 @@
> throw new ProxyCreationException(e);
> }
> }
> + }
> + }
> +
> + private static class FinalizeCallbackFilter implements
> CallbackFilter {
> +
> + public int accept(Method method) {
> + if (method.getName().equals("finalize") &&
> method.getParameterTypes().length == 0) {
> + return 0;
> + }
> + return 1;
> }
> }
>
>
>