An odd question perhaps. I have an interface that allows external manipulation of zimbraAccountStatus, which works OK.

I noticed that some status values, eg. lockout or maintenance might be set by ZCS and also cleared, does this imply that ZCS is remembering the previous state when temporarily applying maintenance?

What happens if the external interface tries to set zimbraAccountStatus while the account is in maintenance or lockout?

I have a lifecycle in mind where accounts are pending -> active -> closed (then finally deleted) but there seems a possibility of race conditions if an external system is trying to set these values on an account. What would happen, would my modifyAccount return an exception?

How can I test this interface and assure myself the race conditions aren't a problem?