@@ -64,29 +64,30 @@ public class App {
6464
6565 private static void sessionExpirationTask () {
6666 new Thread (() - > {
67- while (true ) {
68- try {
69- Thread . sleep(SESSION_EXPIRATION_TIME );
70- Instant currentTime = Instant . now();
71- synchronized (sessions) {
72- synchronized (sessionCreationTimes) {
73- Iterator<Map .Entry<String , Instant > > iterator =
74- sessionCreationTimes. entrySet(). iterator();
75- while (iterator. hasNext()) {
76- Map . Entry<String , Instant > entry = iterator. next();
77- if (entry. getValue(). plusMillis(SESSION_EXPIRATION_TIME ). isBefore(currentTime)) {
78- sessions. remove(entry. getKey());
79- iterator. remove();
67+ while (true ) {
68+ try {
69+ Thread . sleep(SESSION_EXPIRATION_TIME );
70+ Instant currentTime = Instant . now();
71+ synchronized (sessions) {
72+ synchronized (sessionCreationTimes) {
73+ Iterator<Map .Entry<String , Instant > > iterator =
74+ sessionCreationTimes. entrySet(). iterator();
75+ while (iterator. hasNext()) {
76+ Map . Entry<String , Instant > entry = iterator. next();
77+ if (entry. getValue(). plusMillis(SESSION_EXPIRATION_TIME ). isBefore(currentTime)) {
78+ sessions. remove(entry. getKey());
79+ iterator. remove();
80+ System . out. println(" Session expired for user: " + entry. getKey());
81+ }
82+ }
83+ }
8084 }
81- }
85+ } catch (InterruptedException e) {
86+ Thread . currentThread(). interrupt();
87+ break ;
8288 }
83- }
84- } catch (InterruptedException e) {
85- Thread . currentThread(). interrupt();
8689 }
87- }
8890 }). start();
89- }
9091}
9192```
9293
0 commit comments