// calculate new OTI, reduce original by wait time in acquire
oti = oti - (int) (System.currentTimeMillis() - boforeAcquireTime);
// try catch block to assure releasing permit in case of any error - very important!
try {
// thread got permit to continue
CscChangeSubscriptionActiveCascClientCallback cascCallback = new CscChangeSubscriptionActiveCascClientCallback(
cascClient, callback.getRequest(), callback);
this.changeSubscriptionCascadedSCWithActiveCascadedClient(cascClient, msgToForward, cascCallback, oti);
} catch (Exception e) {
// release permit in case of an error
cascClient.getCascClientSemaphore().release();