diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java index d999293c283b0eeaf83cea38d1094a640b3b91ad..af968d4205053cb9c4cea13b66732446c11ede42 100644 --- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java +++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java @@ -28,6 +28,7 @@ */ package org.olat.core.id.context; +import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.text.DateFormat; @@ -523,7 +524,9 @@ public class BusinessControlFactory { } } -class MyContextEntry implements ContextEntry { +class MyContextEntry implements ContextEntry, Serializable { + + private static final long serialVersionUID = 949522581806327579L; private final OLATResourceable olatResourceable; //fxdiff BAKS-7 Resume function diff --git a/src/main/java/org/olat/core/id/context/StateEntry.java b/src/main/java/org/olat/core/id/context/StateEntry.java index 8e48e4f2cedc1356f5c252e8dde176ce95e19152..d1d1cfc58c8124fa4173dee767f68eb9d64998df 100644 --- a/src/main/java/org/olat/core/id/context/StateEntry.java +++ b/src/main/java/org/olat/core/id/context/StateEntry.java @@ -19,6 +19,8 @@ */ package org.olat.core.id.context; +import java.io.Serializable; + /** * * <h3>Description:</h3> @@ -27,7 +29,7 @@ package org.olat.core.id.context; * Initial Date: 18 jan. 2011 <br> * @author srosse, stephane.rosse@frentix.com, www.frentix.com */ -public interface StateEntry extends Cloneable { +public interface StateEntry extends Cloneable, Serializable { public StateEntry clone(); } diff --git a/src/main/java/org/olat/core/id/context/StateMapped.java b/src/main/java/org/olat/core/id/context/StateMapped.java index 8cf89b158189f6c5af9f7bc227d384cbd077e08d..92fcf92f5a665703b8d9d45f4c0f1bc11658039b 100644 --- a/src/main/java/org/olat/core/id/context/StateMapped.java +++ b/src/main/java/org/olat/core/id/context/StateMapped.java @@ -31,7 +31,8 @@ import java.util.Map; * @author srosse, stephane.rosse@frentix.com, www.frentix.com */ public class StateMapped implements StateEntry{ - + + private static final long serialVersionUID = -164313132644246934L; private Map<String,String> delegate = new HashMap<String,String>(); public StateMapped() { diff --git a/src/main/java/org/olat/core/id/context/StateSite.java b/src/main/java/org/olat/core/id/context/StateSite.java index dbf8e1bbe96546f0879b917f71f447303c143bc4..649b9625a8a712bc209e7d5617e873abdec9cf70 100644 --- a/src/main/java/org/olat/core/id/context/StateSite.java +++ b/src/main/java/org/olat/core/id/context/StateSite.java @@ -29,8 +29,9 @@ import org.olat.core.gui.control.navigation.SiteInstance; * Initial Date: 18 jan. 2011 <br> * @author srosse, stephane.rosse@frentix.com, www.frentix.com */ -public class StateSite implements StateEntry{ +public class StateSite implements StateEntry { + private static final long serialVersionUID = 963711681410259249L; private transient SiteInstance site; public StateSite() { diff --git a/src/main/java/org/olat/core/util/UserSession.java b/src/main/java/org/olat/core/util/UserSession.java index f6f9ca25ca72e0a6f06f720c476defb53625cc86..659ffb87f76ea0bb44ed5df006c1cc19362d5a09 100644 --- a/src/main/java/org/olat/core/util/UserSession.java +++ b/src/main/java/org/olat/core/util/UserSession.java @@ -74,7 +74,7 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList private static final long serialVersionUID = 1975177605776990868L; // the environment (identity, locale, ..) of the identity - private transient IdentityEnvironment identityEnvironment; + private IdentityEnvironment identityEnvironment; private transient SessionInfo sessionInfo; private transient Map<String,Object> store; /** @@ -82,10 +82,10 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList */ private transient Map<String,Object> nonClearedStore = new HashMap<String,Object>(); private boolean authenticated = false; - private transient Preferences guiPreferences; - private transient EventBus singleUserSystemBus; + private transient Preferences guiPreferences; + private transient EventBus singleUserSystemBus; private List<String> chats; - private transient Stack<HistoryPoint> history = new Stack<HistoryPoint>(); + private Stack<HistoryPoint> history = new Stack<HistoryPoint>(); public UserSession() { init(); @@ -98,6 +98,15 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList authenticated = false; sessionInfo = null; } + + private Object readResolve() { + store = new HashMap<String,Object>(4); + nonClearedStore = new HashMap<String,Object>(); + singleUserSystemBus = CoordinatorManager.getInstance().getCoordinator().createSingleUserInstance(); + sessionInfo = null; + System.out.println("readResolve 2"); + return this; + } /** * @return true if is authenticated @@ -127,9 +136,15 @@ public class UserSession implements HttpSessionBindingListener, GenericEventList * @return entry */ public Object getEntry(String key) { - if (key == null) return null; - if (store.get(key) != null) return store.get(key); - if (nonClearedStore.get(key) != null) return nonClearedStore.get(key); + if (key == null) { + return null; + } + if (store.get(key) != null) { + return store.get(key); + } + if (nonClearedStore.get(key) != null) { + return nonClearedStore.get(key); + } else return null; } diff --git a/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java b/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java index 1859daae45ac75cca5dac1fe07f9ecb589be3ede..0e8468736fea784f907ed5ff34ee7b79f4a2d281 100644 --- a/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java +++ b/src/main/java/org/olat/user/HomePageContextEntryControllerCreator.java @@ -105,7 +105,8 @@ public class HomePageContextEntryControllerCreator extends DefaultContextEntryCo return identity != null; } - private class HomePageStateEntry implements StateEntry { + public static class HomePageStateEntry implements StateEntry { + private static final long serialVersionUID = -8949620136046652588L; private final Identity identity; public HomePageStateEntry(Identity identity) {