@ Override public Object invoke ( Object proxy , Method method , Object [ ] args ) throws Throwable { String methodName = method . getName ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) Tr . entry ( this , tc , methodName , args ) ; Object r = null ; try { if ( args == null || args . length == 0 ) { if ( "canRegisterSynchronization" . equals ( methodName ) ) r = canRegisterSynchronization ( ) ; else if ( "getCurrentStatus" . equals ( methodName ) ) r = getCurrentStatus ( ) ; else if ( "hashCode" . equals ( methodName ) ) r = System . identityHashCode ( this ) ; else if ( "retrieveTransactionManager" . equals ( methodName ) ) r = retrieveTransactionManager ( ) ; else if ( "retrieveUserTransaction" . equals ( methodName ) ) r = retrieveUserTransaction ( ) ; else if ( "toString" . equals ( methodName ) ) r = new StringBuilder ( getClass ( ) . getName ( ) ) . append ( ' ' ) . append ( Integer . toHexString ( System . identityHashCode ( this ) ) ) . toString ( ) ; } else { if ( "equals" . equals ( methodName ) ) r = proxy == args [ 0 ] ; // assumes one proxy per invocation handler else if ( "getTransactionIdentifier" . equals ( methodName ) ) r = getTransactionIdentifier ( ( Transaction ) args [ 0 ] ) ; else if ( "registerSynchronization" . equals ( methodName ) ) registerSynchronization ( ( Synchronization ) args [ 0 ] ) ; } } catch ( Throwable x ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) Tr . exit ( this , tc , methodName , x ) ; throw x ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) Tr . exit ( this , tc , methodName , r ) ; return r ; }
Invokes our implementation for methods of org . hibernate . engine . transaction . jta . platform . spi . JtaPlatform