@@ -170,22 +170,20 @@ public void invoke(Request request, Response response)
170
170
if (manager instanceof StoreManager ) {
171
171
Session session = manager .findSession (newsessionId );
172
172
Store store = ((StoreManager ) manager ).getStore ();
173
- if (store != null && session != null && session .isValid () &&
174
- !isSessionStale (session , System .currentTimeMillis ())) {
175
- store .save (session );
176
- ((StoreManager ) manager ).removeSuper (session );
177
- session .recycle ();
178
- } else {
179
- if (container .getLogger ().isDebugEnabled ()) {
180
- container .getLogger ().debug ("newsessionId store: " +
181
- store + " session: " + session +
182
- " valid: " +
183
- (session == null ? "N/A" : Boolean .toString (
184
- session .isValid ())) +
185
- " stale: " + isSessionStale (session ,
186
- System .currentTimeMillis ()));
173
+ synchronized (session ) {
174
+ if (store != null && session != null && session .isValid ()
175
+ && !isSessionStale (session , System .currentTimeMillis ())) {
176
+ store .save (session );
177
+ ((StoreManager ) manager ).removeSuper (session );
178
+ session .recycle ();
179
+ } else {
180
+ if (container .getLogger ().isDebugEnabled ()) {
181
+ container .getLogger ()
182
+ .debug ("newsessionId store: " + store + " session: " + session + " valid: "
183
+ + (session == null ? "N/A" : Boolean .toString (session .isValid ()))
184
+ + " stale: " + isSessionStale (session , System .currentTimeMillis ()));
185
+ }
187
186
}
188
-
189
187
}
190
188
} else {
191
189
if (container .getLogger ().isDebugEnabled ()) {
0 commit comments