if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Request End Time exceeded prior to invocation",
2,
CompletionStatus.COMPLETED_NO);
}
}
currentCtxt.put (INVOCATION_KEY.REQUEST_END_TIME, requestEndTime);
}
else
{
if (Time.hasPassed (requestEndTime))
{
if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Request End Time exceeded",
2,
CompletionStatus.COMPLETED_NO);
}
}
if (replyEndTime == null)
{
replyEndTime = getReplyEndTime();
final long roundtripTimeout = getRelativeRoundtripTimeout();
if ((roundtripTimeout > 0) || (replyEndTime != null))
{
replyEndTime = Time.earliest(Time.corbaFuture (roundtripTimeout), replyEndTime);
if (Time.hasPassed(replyEndTime))
{
if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Reply End Time exceeded prior to invocation",
3,
CompletionStatus.COMPLETED_NO);
}
}
currentCtxt.put (INVOCATION_KEY.REPLY_END_TIME, replyEndTime);
}
else
{
if (Time.hasPassed(replyEndTime))
{
if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Reply End Time exceeded",
3,
CompletionStatus.COMPLETED_NO);
}
}
}