public static synchronized void switchAutoProvThreadIfNecessary() throws ServiceException { Server localServer = Provisioning.getInstance().getLocalServer(); long interval = localServer.getTimeInterval(Provisioning.A_zimbraAutoProvPollingInterval, 0); Set<String> scheduledDomains = localServer.getMultiAttrSet(Provisioning.A_zimbraAutoProvScheduledDomains); boolean needRunning = interval > 0 && !scheduledDomains.isEmpty(); if (needRunning && !AutoProvisionThread.isRunning()) { AutoProvisionThread.startup(); } else if (!needRunning && AutoProvisionThread.isRunning()) { AutoProvisionThread.shutdown(); } }