[jira] Commented: (GERONIMO-2204) ProxyMethodInterceptor doesn't handle finalize appropriately

2006-08-29 Thread David Jencks (JIRA)
[ 
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




[jira] Commented: (GERONIMO-2204) ProxyMethodInterceptor doesn't handle finalize appropriately

2006-08-01 Thread Kevan Miller (JIRA)
[ 
http://issues.apache.org/jira/browse/GERONIMO-2204?page=comments#action_12425074
 ] 

Kevan Miller commented on GERONIMO-2204:


I've reverted the original fix (RC 425160). The change was causing 
OutOfMemoryErrors during deployment of apps. 

This change roughly double the number of classes created by G on startup. I 
could only deploy/undeploy DayTrader once. After reverting the change, I've run 
well over 100 deploy/undeploy cycles. We're leaking two instances of 
'EDU.oswego.cs.dl.util.concurrent.LinkedNode' per deploy/undeploy, but that's 
only 32 bytes...


 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.1.1, 1.2


 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




[jira] Commented: (GERONIMO-2204) ProxyMethodInterceptor doesn't handle finalize appropriately

2006-07-19 Thread Matt Hogstrom (JIRA)
[ 
http://issues.apache.org/jira/browse/GERONIMO-2204?page=comments#action_12422323
 ] 

Matt Hogstrom commented on GERONIMO-2204:
-

I think its worth fixing given that it pops up frequently and doesn't help 
developers.  

Serializable Noop sounds workable.

 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: Dain Sundstrom
Priority: Minor

 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