public void storeSipSessionData( OutgoingDistributableSipSessionData sipSessionData) { String sipApplicationSessionKey = sipSessionData.getSipApplicationSessionKey(); String sessionKey = sipSessionData.getSipSessionKey(); if (log_.isDebugEnabled()) { log_.debug("storeSipSessionData(): putting sip session " + sessionKey.toString()); } Fqn<String> fqn = getSipSessionFqn(jBossCacheService.combinedPath_, sipApplicationSessionKey, sessionKey); // Swap in/out the webapp classloader so we can deserialize // attributes whose classes are only available to the webapp ClassLoader prevTCL = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(manager.getApplicationClassLoader()); try { storeSipSessionMetaData(fqn, sipSessionData); ((DistributedCacheConvergedSipManager)jBossCacheService).storeSipSessionAttributes(Fqn.fromString(fqn.toString() + "/" + AbstractJBossCacheService.ATTRIBUTE_KEY), sipSessionData); } finally { Thread.currentThread().setContextClassLoader(prevTCL); } }