1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.filter.keepalive;
21
22 import org.apache.mina.core.session.IoSession;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26
27
28
29
30
31
32
33 public interface KeepAliveRequestTimeoutHandler {
34
35
36
37 static KeepAliveRequestTimeoutHandler NOOP = new KeepAliveRequestTimeoutHandler() {
38 public void keepAliveRequestTimedOut(
39 KeepAliveFilter filter, IoSession session) throws Exception {
40
41 }
42 };
43
44
45
46
47 static KeepAliveRequestTimeoutHandler LOG = new KeepAliveRequestTimeoutHandler() {
48 private final Logger log =
49 LoggerFactory.getLogger(KeepAliveFilter.class);
50
51 public void keepAliveRequestTimedOut(
52 KeepAliveFilter filter, IoSession session) throws Exception {
53 log.warn("A keep-alive response message was not received within " +
54 "{} second(s).", filter.getRequestTimeout());
55 }
56 };
57
58
59
60
61 static KeepAliveRequestTimeoutHandler EXCEPTION = new KeepAliveRequestTimeoutHandler() {
62 public void keepAliveRequestTimedOut(
63 KeepAliveFilter filter, IoSession session) throws Exception {
64 throw new KeepAliveRequestTimeoutException(
65 "A keep-alive response message was not received within " +
66 filter.getRequestTimeout() + " second(s).");
67 }
68 };
69
70
71
72
73 static KeepAliveRequestTimeoutHandler CLOSE = new KeepAliveRequestTimeoutHandler() {
74 private final Logger log =
75 LoggerFactory.getLogger(KeepAliveFilter.class);
76
77 public void keepAliveRequestTimedOut(
78 KeepAliveFilter filter, IoSession session) throws Exception {
79 log.warn("Closing the session because a keep-alive response " +
80 "message was not received within {} second(s).",
81 filter.getRequestTimeout());
82 session.close();
83 }
84 };
85
86
87
88
89 static KeepAliveRequestTimeoutHandler DEAF_SPEAKER = new KeepAliveRequestTimeoutHandler() {
90 public void keepAliveRequestTimedOut(
91 KeepAliveFilter filter, IoSession session) throws Exception {
92 throw new Error("Shouldn't be invoked. Please file a bug report.");
93 }
94 };
95
96
97
98
99
100 void keepAliveRequestTimedOut(KeepAliveFilter filter, IoSession session) throws Exception;
101 }