[ 
http://issues.apache.org/jira/browse/GERONIMO-2204?page=comments#action_12431271
 ] 
            
David Jencks commented on GERONIMO-2204:
----------------------------------------

Additional comment from duplicate report  in GERONIMO-2356:
Unlike the Sun JVM's the current version of the IBM JDK 1.5 does not silently 
ignore exceptions in finalizers. Due to this, when launching Geronimo in Debug 
mode using the Geronimo Eclipse plugin, the debugger prematurely breaks at this 
exception during server startup.

Placing a try/catch/println/threaddump in the 
o.a.g.Kernel.ProxyMethodInterceptor.intercept method provides the following 
information... During startup the exception is usually thrown right at startup 
and at least one additonal or more times near end of server startup.

No implementation method: 
objectName=geronimo/tomcat/1.1.1-SNAPSHOT/car?ServiceModule=geronimo/tomcat/1.1.1-SNAPSHOT/car,j2eeType=GBean,name=TomcatAJPConnector,
 method=protected void java.lang.Object.finalize() throws java.lang.Throwable

> ProxyMethodInterceptor doesn't handle finalize appropriately
> ------------------------------------------------------------
>
>                 Key: GERONIMO-2204
>                 URL: http://issues.apache.org/jira/browse/GERONIMO-2204
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: kernel
>    Affects Versions: 1.1
>            Reporter: David Jencks
>         Assigned To: David Jencks
>            Priority: Minor
>             Fix For: 1.2, 1.1.x
>
>
> A user noticed that while debugging in eclipse (or idea with 
> break-on-exceptions turned on) this method from ProxyMethodInterceptor throws 
> UnsupportedOperationException when finalize is called on a proxy object:
>     public final Object intercept(final Object object, final Method method, 
> final Object[] args, final MethodProxy proxy) throws Throwable {
>         ProxyInvoker gbeanInvoker;
>         int interfaceIndex = proxy.getSuperIndex();
>         synchronized (this) {
>             if (gbeanInvokers == null) {
>                 throw new DeadProxyException("Proxy is no longer valid");
>             }
>             gbeanInvoker = gbeanInvokers[interfaceIndex];
>         }
>         if (gbeanInvoker == null) {
>             throw new UnsupportedOperationException("No implementation 
> method: objectName=" + abstractName + ", method=" + method);
>         }
>         return gbeanInvoker.invoke(abstractName, args);
>     }
> This appears to be harmless since the proxy doesn't implement finalize, but 
> annoying.  We could fix this by explicitly ignoring the finalize method in 
> the code above, possibly by installing a suitable FinalizeInvoker, or by 
> using a CallbackFilter with  a Noop or SerizializableNoop callback (the 
> strategy used by spring aop).
> Is this worth fixing? Which way would be best? 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to