this implementation depends only on the lock holder and not on the lock expiration time . concode_field_sep long expires concode_elem_sep int hashCode concode_elem_sep String name concode_elem_sep T holder concode_elem_sep Logger log concode_elem_sep ConcurrentHashMap<KeyColumn,AuditRecord<T>> locks concode_field_sep boolean unlock concode_elem_sep boolean equals concode_elem_sep boolean lock concode_elem_sep String toString concode_elem_sep String toString
int function ( ) { if ( 0 == hashCode ) hashCode = holder . hashCode ( ) ; return hashCode ; }