private void completeTransaction ( final String txId , String wsName ) { getWorkspace ( ) . clear ( ) ; // reset the ws cache to the shared (global one) setWorkspaceCache ( sharedWorkspaceCache ( ) ) ; // and clear some tx specific data COMPLETE_FUNCTION_BY_TX_AND_WS . compute ( txId , ( transactionId , funcsByWsName ) -> { funcsByWsName . remove ( wsName ) ; if ( funcsByWsName . isEmpty ( ) ) { // this is the last ws cache we are clearing for this tx so mark all the keys as unlocked LOCKED_KEYS_BY_TX_ID . remove ( txId ) ; // and remove the map return null ; } // there are other ws caches which need clearing for this tx, so just return the updated map return funcsByWsName ; } ) ; }
Signal that the transaction that was active and in which this session participated has completed and that this session should no longer use a transaction - specific workspace cache .