/** Called for a persistent request after startup. Should call notifyClients() at the end, * after the callback has been registered etc. * @throws ResumeFailedException */ public final void onResume(ClientContext context) throws ResumeFailedException { synchronized(this) { if(resumed) return; resumed = true; } innerOnResume(context); }