From d411061c7377761765ea54775319e2ad6a7ebeeb Mon Sep 17 00:00:00 2001 From: kunsanglee <85242378+kunsanglee@users.noreply.github.com> Date: Sat, 14 Sep 2024 18:03:16 +0900 Subject: [PATCH] =?UTF-8?q?Revert=20"[4=EB=8B=A8=EA=B3=84=20-=20Tomcat=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=ED=95=98=EA=B8=B0]=20=EB=B9=84=ED=86=A0(?= =?UTF-8?q?=EC=98=A4=EC=83=81=ED=9B=88)=20=EB=AF=B8=EC=85=98=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C=ED=95=A9=EB=8B=88=EB=8B=A4.=20(#687)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4fff965044ae1926e540458637b26b127cece400. --- study/src/main/resources/application.yml | 4 ++-- .../controller/AbstractController.java | 2 -- .../apache/catalina/connector/Connector.java | 17 ++++++----------- .../apache/coyote/http11/Http11Processor.java | 1 + .../http11/httpresponse/HttpResponse.java | 3 +-- .../apache/coyote/http11/session/Session.java | 4 ++-- 6 files changed, 12 insertions(+), 19 deletions(-) diff --git a/study/src/main/resources/application.yml b/study/src/main/resources/application.yml index e3f03c808a..c152bb20db 100644 --- a/study/src/main/resources/application.yml +++ b/study/src/main/resources/application.yml @@ -3,8 +3,8 @@ handlebars: server: tomcat: - accept-count: 2 - max-connections: 2 + accept-count: 1 + max-connections: 1 threads: min-spare: 2 max: 2 diff --git a/tomcat/src/main/java/com/techcourse/controller/AbstractController.java b/tomcat/src/main/java/com/techcourse/controller/AbstractController.java index 9ee8cae097..d91f52d861 100644 --- a/tomcat/src/main/java/com/techcourse/controller/AbstractController.java +++ b/tomcat/src/main/java/com/techcourse/controller/AbstractController.java @@ -10,11 +10,9 @@ public abstract class AbstractController implements Controller { public void service(HttpRequest httpRequest, HttpResponse httpResponse) { if (httpRequest.isMethod(HttpMethod.GET)) { doGet(httpRequest, httpResponse); - return; } if (httpRequest.isMethod(HttpMethod.POST)) { doPost(httpRequest, httpResponse); - return; } throw new IllegalArgumentException("유효하지 않은 메소드입니다."); diff --git a/tomcat/src/main/java/org/apache/catalina/connector/Connector.java b/tomcat/src/main/java/org/apache/catalina/connector/Connector.java index 2cf5e9e874..d171bb84a8 100644 --- a/tomcat/src/main/java/org/apache/catalina/connector/Connector.java +++ b/tomcat/src/main/java/org/apache/catalina/connector/Connector.java @@ -4,8 +4,6 @@ import java.io.UncheckedIOException; import java.net.ServerSocket; import java.net.Socket; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import org.apache.coyote.http11.Http11Processor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,19 +14,16 @@ public class Connector implements Runnable { private static final int DEFAULT_PORT = 8080; private static final int DEFAULT_ACCEPT_COUNT = 100; - private static final int DEFAULT_MAX_THREADS = 250; private final ServerSocket serverSocket; - private final ExecutorService executor; private boolean stopped; public Connector() { - this(DEFAULT_PORT, DEFAULT_ACCEPT_COUNT, DEFAULT_MAX_THREADS); + this(DEFAULT_PORT, DEFAULT_ACCEPT_COUNT); } - public Connector(final int port, final int acceptCount, final int maxThreads) { + public Connector(final int port, final int acceptCount) { this.serverSocket = createServerSocket(port, acceptCount); - this.executor = Executors.newFixedThreadPool(maxThreads); this.stopped = false; } @@ -43,8 +38,10 @@ private ServerSocket createServerSocket(final int port, final int acceptCount) { } public void start() { + var thread = new Thread(this); + thread.setDaemon(true); + thread.start(); stopped = false; - executor.execute(this); log.info("Web Application Server started {} port.", serverSocket.getLocalPort()); } @@ -69,7 +66,7 @@ private void process(final Socket connection) { return; } var processor = new Http11Processor(connection); - executor.execute(processor); + new Thread(processor).start(); } public void stop() { @@ -78,8 +75,6 @@ public void stop() { serverSocket.close(); } catch (IOException e) { log.error(e.getMessage(), e); - } finally { - executor.shutdown(); } } diff --git a/tomcat/src/main/java/org/apache/coyote/http11/Http11Processor.java b/tomcat/src/main/java/org/apache/coyote/http11/Http11Processor.java index 20e12ff933..e623c76679 100644 --- a/tomcat/src/main/java/org/apache/coyote/http11/Http11Processor.java +++ b/tomcat/src/main/java/org/apache/coyote/http11/Http11Processor.java @@ -55,6 +55,7 @@ private HttpResponse createResponse(HttpRequest httpRequest) { HttpResponse httpResponse = new HttpResponse(); try { handle(httpRequest, httpResponse); + return httpResponse; } catch (NotFoundException e) { httpResponse.location(httpRequest, NOT_FOUND_PATH); } catch (UnauthorizedException e) { diff --git a/tomcat/src/main/java/org/apache/coyote/http11/httpresponse/HttpResponse.java b/tomcat/src/main/java/org/apache/coyote/http11/httpresponse/HttpResponse.java index 8d4c448715..f57c27375f 100644 --- a/tomcat/src/main/java/org/apache/coyote/http11/httpresponse/HttpResponse.java +++ b/tomcat/src/main/java/org/apache/coyote/http11/httpresponse/HttpResponse.java @@ -122,8 +122,7 @@ public byte[] toResponse() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(httpStatusLine.createStatusLineResponse()) .append(RESPONSE_LINE_DELIMITER) - .append(httpResponseHeader.createHeadersResponse()) - .append(RESPONSE_LINE_DELIMITER); + .append(httpResponseHeader.createHeadersResponse()); if (httpResponseBody != null) { stringBuilder.append(RESPONSE_LINE_DELIMITER) .append(httpResponseBody.getBody()); diff --git a/tomcat/src/main/java/org/apache/coyote/http11/session/Session.java b/tomcat/src/main/java/org/apache/coyote/http11/session/Session.java index c92567d2ae..9054689244 100644 --- a/tomcat/src/main/java/org/apache/coyote/http11/session/Session.java +++ b/tomcat/src/main/java/org/apache/coyote/http11/session/Session.java @@ -1,8 +1,8 @@ package org.apache.coyote.http11.session; import com.techcourse.model.User; +import java.util.HashMap; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; public class Session { @@ -13,7 +13,7 @@ public class Session { public Session(String id) { this.id = id; - this.attributes = new ConcurrentHashMap<>(); + this.attributes = new HashMap<>(); } public boolean hasAttribute(String name) {