ConnectionTrackingCoordinator.invoke() does not properly convert Exceptions
---------------------------------------------------------------------------
Key: GERONIMO-3087
URL: https://issues.apache.org/jira/browse/GERONIMO-3087
Project: Geronimo
Issue Type: Bug
Security Level: public (Regular issues)
Affects Versions: 2.0-M4, 2.0-M5
Reporter: Kevan Miller
Fix For: 2.0-M5
ConnectionTrackingCoordinator.invoke() uses reflection to invoke the
appropriate method on an object. If an exception occurs during the method
invocation, the exception is converted into an InvocationTargetException.
ConnectionTrackingCoordinator.invoke() needs to turn the exception back into
it's original form. Otherwise, you'll get incorrect exceptions returned to
client code and exceptions of the form:
java.lang.reflect.UndeclaredThrowableException
at $Proxy33.start(Unknown Source)
at MyTestClass.closeAClosedConnection(MyTestClass.java:53) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:136)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:119)
at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:72)
at
org.apache.openejb.core.stateful.StatefulContainer._invoke(StatefulContainer.java:420)
at
org.apache.openejb.core.stateful.StatefulContainer.businessMethod(StatefulContainer.java:382)
at
org.apache.openejb.core.stateful.StatefulContainer.invoke(StatefulContainer.java:257)
at
org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:198)
at
org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:113)
at
org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:149)
at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:107)
at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:80)
at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60)
at
org.apache.openejb.server.ServiceLogger.service(ServiceLogger.java:75)
at
org.apache.openejb.server.ServiceAccessController.service(ServiceAccessController.java:55)
at org.apache.openejb.server.ServiceDaemon$1.run(ServiceDaemon.java:117)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator$ConnectionInvocationHandler.invoke(ConnectionTrackingCoordinator.java:329)
... 29 more
Caused by: javax.jms.IllegalStateException: The Connection is closed
at
org.apache.activemq.ra.ManagedConnectionProxy.getConnection(ManagedConnectionProxy.java:93)
at
org.apache.activemq.ra.ManagedConnectionProxy.start(ManagedConnectionProxy.java:200)
... 34 more
I have not reproduced this problem on 1.2, but sure looks like it would cause a
problem there, also...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.