if (store == null) {
return null;
}
try {
SipApplicationSessionImpl session = null;
try {
if (SecurityUtil.isPackageProtectionEnabled()){
try{
session = (SipApplicationSessionImpl) AccessController.doPrivileged(new PrivilegedStoreLoadSipApplicationSession(id, version, store));
}catch(PrivilegedActionException ex){
Exception exception = ex.getException();
if (exception instanceof IOException){
throw (IOException)exception;
} else if (exception instanceof ClassNotFoundException) {
throw (ClassNotFoundException)exception;
}
}
} else {
if (version != null) {
session = store.load(id, version);
} else {
session = store.load(id);
}
}
} catch (ClassNotFoundException e) {
IOException ex1 =
(IOException) new IOException("Error during swapInSipApplicationSession: " + e.getMessage()).initCause(e);
throw ex1;
}
if (SASLockStatus.isSASLocked()) {
session = activate(session, removeFromExpat);
} else if (session != null) {
synchronized (session.getSasObjectLock()) {
SASLockStatus.resetSASLockedToDefaultValue();
session = activate(session, removeFromExpat);
}
}
return session;