1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.impl.bootstrap;
28
29 import java.io.IOException;
30
31 import org.apache.http.ExceptionLogger;
32 import org.apache.http.HttpServerConnection;
33 import org.apache.http.protocol.BasicHttpContext;
34 import org.apache.http.protocol.HttpCoreContext;
35 import org.apache.http.protocol.HttpService;
36
37
38
39
40 class Worker implements Runnable {
41
42 private final HttpService httpservice;
43 private final HttpServerConnection conn;
44 private final ExceptionLogger exceptionLogger;
45
46 Worker(
47 final HttpService httpservice,
48 final HttpServerConnection conn,
49 final ExceptionLogger exceptionLogger) {
50 super();
51 this.httpservice = httpservice;
52 this.conn = conn;
53 this.exceptionLogger = exceptionLogger;
54 }
55
56 public HttpServerConnection getConnection() {
57 return this.conn;
58 }
59
60 @Override
61 public void run() {
62 try {
63 final BasicHttpContext.html#BasicHttpContext">BasicHttpContext localContext = new BasicHttpContext();
64 final HttpCoreContext context = HttpCoreContext.adapt(localContext);
65 while (!Thread.interrupted() && this.conn.isOpen()) {
66 this.httpservice.handleRequest(this.conn, context);
67 localContext.clear();
68 }
69 this.conn.close();
70 } catch (final Exception ex) {
71 this.exceptionLogger.log(ex);
72 } finally {
73 try {
74 this.conn.shutdown();
75 } catch (final IOException ex) {
76 this.exceptionLogger.log(ex);
77 }
78 }
79 }
80
81 }