Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 34474 invoked from network); 24 Jul 2006 21:28:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 24 Jul 2006 21:28:35 -0000 Received: (qmail 2404 invoked by uid 500); 24 Jul 2006 21:28:34 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 1752 invoked by uid 500); 24 Jul 2006 21:28:33 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 1741 invoked by uid 99); 24 Jul 2006 21:28:33 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Jul 2006 14:28:33 -0700 X-ASF-Spam-Status: No, hits=3.7 required=10.0 tests=DNS_FROM_RFC_ABUSE,DNS_FROM_RFC_POST,DNS_FROM_RFC_WHOIS,FORGED_YAHOO_RCVD X-Spam-Check-By: apache.org Received-SPF: neutral (asf.osuosl.org: local policy) Received: from [205.152.59.73] (HELO imf25aec.mail.bellsouth.net) (205.152.59.73) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Jul 2006 14:28:32 -0700 Received: from ibm69aec.bellsouth.net ([74.237.109.96]) by imf25aec.mail.bellsouth.net with ESMTP id <20060724212811.FQLX26270.imf25aec.mail.bellsouth.net@ibm69aec.bellsouth.net> for ; Mon, 24 Jul 2006 17:28:11 -0400 Received: from [192.168.1.96] (really [74.237.109.96]) by ibm69aec.bellsouth.net with ESMTP id <20060724212811.SFZX10885.ibm69aec.bellsouth.net@[192.168.1.96]> for ; Mon, 24 Jul 2006 17:28:11 -0400 Mime-Version: 1.0 (Apple Message framework v749.3) In-Reply-To: References: <20060724194943.E36381A981D@eris.apache.org> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: <2806AD79-32A2-4F42-BEE7-E40480703F31@yahoo.com> Content-Transfer-Encoding: 7bit From: David Jencks Subject: Re: svn commit: r425160 - /geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java Date: Mon, 24 Jul 2006 17:29:49 -0400 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.749.3) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N 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; >> } >> } >> >> >> >