PrivilegedServlet.waitForInitialization();
    public static synchronized void startup() throws ServiceException {        if (sInited)            return;                ZimbraLog.misc.info(                            "version=" + BuildInfo.VERSION +                            " release=" + BuildInfo.RELEASE +                            " builddate=" + BuildInfo.DATE +                            " buildhost=" + BuildInfo.HOST);                checkForClasses();            	if (!Versions.checkVersions())            throw new RuntimeException("Data version mismatch.  Reinitialize or upgrade the backend data store.");            	ExtensionUtil.loadAll();    	ExtensionUtil.initAll();    	        TransformationStub.getInstance().init();                Indexer.GetInstance().startup();                RedoLogProvider redoLog = RedoLogProvider.getInstance();        redoLog.startup();                System.setProperty("ical4j.unfolding.relaxed", "true");                if (!redoLog.isSlave()) {            Server server = Provisioning.getInstance().getLocalServer();            LmtpServer.startupLmtpServer();            if (server.getBooleanAttr(Provisioning.A_zimbraPop3ServerEnabled, false))                Pop3Server.startupPop3Server();            if (server.getBooleanAttr(Provisioning.A_zimbraPop3SSLServerEnabled, false))                Pop3Server.startupPop3SSLServer();            if (server.getBooleanAttr(Provisioning.A_zimbraImapServerEnabled, false))                ImapServer.startupImapServer();            if (server.getBooleanAttr(Provisioning.A_zimbraImapSSLServerEnabled, false))                ImapServer.startupImapSSLServer();        }        sInited = true;    }