//The other case might or might not work
if( h != null && h.getResourceState().isUnenlisted()) {
try {
//Enable the suspended lazyenlistment so as to enlist the resource.
h.setEnlistmentSuspended(false);
tm.enlistResource( tran, h );
//Suspend it back
h.setEnlistmentSuspended(true);
} catch( Exception e ) {
//In the rare cases where enlistResource throws exception, we
//should return the resource to the pool