class CloseAsyncOperationActor {

    public void completeAsyncOp(final CloseAsyncOpMessage message) throws InvalidArgumentException {
        try {
            message.getOperationTokens().remove(message.getToken());
            collection.complete(message.getOperation());
        } catch (ReadValueException e) {
            throw new InvalidArgumentException("Can't read some of values in message", e);
        } catch (CompleteAsyncOperationException e) {
            throw new InvalidArgumentException("Can't close async operation with this parameters: " + message, e);
        }
    }

    public  CloseAsyncOperationActor(final IObject params);

}