]
Jeff Zhang resolved JBAS-4176.
------------------------------
Fix Version/s: JBossAS-5.0.0.CR1
(was: JBossAS-4.2.3.GA)
Resolution: Done
Error in delist masks the real error creating the connection handle
in BaseConnectionManager2
---------------------------------------------------------------------------------------------
Key: JBAS-4176
URL:
http://jira.jboss.com/jira/browse/JBAS-4176
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: JCA service
Reporter: Adrian Brock
Assigned To: Jeff Zhang
Fix For: JBossAS-5.0.0.CR1
There is a problem with the error reporting in
BaseConnectionManager2.allocationConnection().
When it can't get a connection handle, it invokes managedConnectionDisconnected() to
make sure any work already done is undone, e.g. delist the resource and return to the
pool.
The problem is that an error thrown from managedConnectionDisconnected()
will be given to the user rather than the original error thrown when getting the handle.
// Ask the managed connection for a connection
Object connection = null;
try
{
connection = cl.getManagedConnection().getConnection(subject, cri);
}
catch (Throwable t)
{
// HERE: Error from this method
managedConnectionDisconnected(cl);
// Means this original error is not thrown
JBossResourceException.rethrowAsResourceException(
"Unchecked throwable in ManagedConnection.getConnection() cl=" +
cl, t);
}
In fact, if we do get an error asking for a handle, we should probably just quietly (no
logging above DEBUG)
destroy the connection and then rethrow the original error.
i.e.
catch (Throwable t)
{
// HERE: Destroy the connection
returnManagedConnection(cl, true);
JBossResourceException.rethrowAsResourceException(
"Unchecked throwable in ManagedConnection.getConnection() cl=" +
cl, t);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: